0

我几乎已经开发了一个完整的网站,不实现 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

好像“图像”文件夹位于实际上不存在的“县”文件夹中。是否有重写规则会忽略此图像链接更改?或者我错过了什么?

编辑:根据要求:

...
RewriteEngine On
RewriteRule ^county/([^/]*)\.html$ /sector.php?county=$1 [L]
...

编辑:答案发布的解决方案非常好,解决了图像问题,但后来我遇到了一个问题,即我的 css 文件被放在 /images/ 目录之后。Ofc 一个简单的修复方法就是将它们放在那里,但没有其他方法吗?

4

2 回答 2

1

请查看<base>HTML 标记。

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

它允许您定义站点的基本 URL,之后,任何构建的链接/images/someimage.png都会将您定向到根目录的images/.

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

于 2012-07-13T10:10:33.573 回答
0

尝试类似:

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

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

于 2012-07-13T10:10:28.287 回答