CSS和图像mod_rewrite

时间:2012-08-07 12:00:56

标签: apache mod-rewrite

我有这个页面,我想使用mod_rewrite从

重写

http://example.com/dev/main/1234

http://example.com/dev/index.php?page=main&id=1234

我成功地让mod_rewrite适用于该页面,但我仍然遇到CSS和图像问题。

  1 Options +FollowSymLinks
  2 
  3 ReWriteEngine on
  4 RewriteRule ^(.*)/([^/\.]+)/?$ /dev/index.php?page=$1&id=$2 [L]
  5 RewriteCond %{REQUEST_FILENAME} !-d
  6 RewriteCond %{REQUEST_FILENAME} !-f

css位于/ var / www / dev / css,图像位于/ var / www / dev / img。当我访问http://example.com/dev/main/1234时,如何让mod_rewrite加载相同的图像和css?谢谢!

2 个答案:

答案 0 :(得分:0)

你的htaccess中有这两个条件(我假设你的htaccess在/ dev文件夹中)?

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

如果没有,您的图片网址将被重写,因为它们与您的正则表达式匹配(css / image.jpg)

当请求是真实路径(指向文件或文件夹)时,有两个条件可以避免重写URL

答案 1 :(得分:0)

哇。得到了一些黑客攻击。不知道这是否是正确的方法,但它有效:

RewriteRule ^(.*)/css/(.+)?$ css/$2 [NC,L]
RewriteRule ^(.*)/img/(.+)?$ img/$2 [NC,L]