我正在处理的网站上有一个.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
答案 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。