我几乎已经开发了一个完整的网站,没有实现mod_rewrite是愚蠢的。我希望现在就这么做,并做了一个测试页面。mod_Rewrite工作得很好,但我遇到了所有图像都链接到新页面URL的问题,例如:
www.mysite.com/county/Kent.html
来自
www.mysite.com/sector.php?county=kent
它工作得很好,但当我在新的链接上时,图像的URL会变成这样。
mysite.com/county/images/widMot.png
就好像"images"文件夹在"country"文件夹中一样,而实际上并没有;不存在。是否有重写规则,将忽略此图像链接的更改?或者我错过了什么?
编辑:按要求:
...
RewriteEngine On
RewriteRule ^county/([^/]*)'.html$ /sector.php?county=$1 [L]
...
编辑:答案发布的解决方案非常好,解决了图像问题,但我后来遇到了css文件放在/images/目录后面的问题。Ofc的一个简单解决方案是把它们放在那里,但没有其他方法吗?
请查看<base>
HTML标记。
http://www.w3schools.com/tags/tag_base.asp
它允许您定义网站的基本URL,之后,任何像/images/someimage.png
一样构建的链接都会将您引导到根目录的images/
。
编辑:更具体地说,所有以正斜杠/
开头的相对URL都将在域名之后立即开始。
尝试以下操作:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule YOUR REWRITE RULE
</IfModule>
应该将所有内容传递给重写规则,除非请求的URL是服务器上的实际文件。