PHP mod_rewire整个网站,并重写图像URL?

时间:2012-07-13 10:06:57

标签: php mod-rewrite

我几乎开发了一个完整的网站,并且没有实现mod_rewrite是愚蠢的。我现在希望这样做,并做了一个测试页面。 mod_Rewrite工作得很好,但我遇到了所有imaegs链接到新页面URL的问题,例如:

www.mysite.com/county/Kent.html

来自

www.mysite.com/sector.php?county=kent

效果很好,但是当我在新链接上时,图片的网址会更改为此。

mysite.com/county/images/widMot.png

好像'images'文件夹位于'county'文件夹中,实际上并不存在。是否有重写规则,将忽略此图像链接更改?或者我缺少的东西?

编辑:根据要求:

...
RewriteEngine On
RewriteRule ^county/([^/]*)\.html$ /sector.php?county=$1 [L]
...
编辑:答案发布的答案非常好,并解决了图像问题,但后来我遇到了一个问题,我的css文件放在/ images /目录之后。 Ofc一个简单的解决办法就是将它们放在那里,但是没有别的办法吗?

2 个答案:

答案 0 :(得分:1)

请查看<base> HTML标记。

http://www.w3schools.com/tags/tag_base.asp

它允许您定义网站的基本网址,之后,任何像/images/someimage.png这样构建的链接都会引导您访问根目录的images/

编辑: 更具体地说,所有以正斜杠/开头的相对URL将在域名后立即开始。

答案 1 :(得分:0)

尝试类似:

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule YOUR REWRITE RULE
</IfModule>

除非请求的URL是服务器上的实际文件,否则应将所有内容传递给重写规则。