忽略图像文件夹的重写规则

时间:2011-11-07 21:08:52

标签: apache .htaccess

我正在处理的网站上有一个.htaccess文件,该网站将mydomain.com/sub/folder/的网址重写为mydomain.com?index.php?controller=sub&view=folder

不幸的是,我写它的方式意味着我再也无法访问图像,样式表和其他链接文件了。谁能告诉我如何从重写规则中排除特定目录/ URL请求?

道歉,如果这是一个新手问题,我仍然围绕着这个mod重写的东西!

.htaccess文件如下所示:

RewriteEngine on RewriteRule ^([a-zA-Z0-9- ] +)/?$ index.php?Controller = $ 1 RewriteRule ^([a-zA-Z0-9 - ] +)/([a-zA-Z0-9 -_] +)/? ?的index.php控制器= $ 1和;查看= $ 16

1 个答案:

答案 0 :(得分:0)

如果您的图片位于mydomain.com/images,并且您使用页面mydomain.com/sub/folder/上的相对链接链接到这些图片,则浏览器将尝试通过mydomain.com/sub/folder/images/i.gif尝试访问该图片。但是,如果您将链接更改为绝对链接,浏览器将正确尝试加载mydomain.com/images/i.gif。但是,RewriteRule会将其更改为:mydomain.com/index/php?Controller=images&View=i.gif。为避免这种情况,您需要添加一些RewriteConds:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-_]+)\/?$ index.php?Controller=$1
RewriteRule ^([a-zA-Z0-9-_]+)/([a-zA-Z0-9-_]+)\/? index.php?Controller=$1&View=$2

因此,在尝试访问现有文件/目录时,请不要重写为index.php。