带有重写规则的坏路径地址

时间:2012-02-27 07:15:15

标签: mod-rewrite

我已经在一个月前问过类似的问题了,并且根据我的情况接受了解决方案。 但是现在我有一个关于这个问题的重要通知。

我在本地网络服务器上运行网站。网站路径为http://ikot。 当我输入像“ikot / news”这样的地址时 - 没关系 但当我进入ikot / media时,它会转换为“http:// ikot / media /?level [0] = media& depth = 1”

我在htaccess中的重写规则:

RewriteRule     ^([0-9a-zA-Z_-]+)[/]?$   /index.php?level[0]=$1&depth=1 [L,QSA]                       
RewriteRule     ^([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)[/]?$   /index.php?level[0]=$1&level[1]=$2&depth=2 [L,QSA] 
RewriteRule     ^([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)[/]?$                   /index.php?level[0]=$1&level[1]=$2&level[2]=$3&depth=3 [L,QSA]
RewriteRule     ^([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)[/]?$      /index.php?level[0]=$1&level[1]=$2&level[2]=$3&level[3]=$4&depth=4 [L,QSA]

这种转换(ikot / media到ikot / media / [garbage]路径)的原因是我的站点的根文件夹中有“media”文件夹。也许重写规则以某种方式考虑,我想要输入此文件夹或类似的东西(但ikot / media导致网站的媒体页面,而不是媒体文件夹的内容)。

请帮助我解决这个问题。 感谢

1 个答案:

答案 0 :(得分:0)

请尝试关闭DirectorySlash。它看起来mod_dir改变了你的url并且重写不能按照你想要的方式工作(第一个mod重写将它改为index.php?...而下一个mod dir重定向到/ media /?... - 或类似的东西)

将“DirectorySlash Off”添加到.htaccess对我有用。

如果有帮助,请仔细阅读该页面上的“安全警告”:http://httpd.apache.org/docs/2.0/mod/mod_dir.html