为什么我用斜杠将301重定向到文件夹名称?

时间:2012-09-06 14:38:14

标签: .htaccess redirect

http://localhost/SAMPLE-CODES/backbone-mysql-reading-json/websites

的请求

按如下方式重定向:

> Request URL:http://localhost/SAMPLE-CODES/backbone-mysql-reading-json/websites
> Request Method:GET
> Status Code:301 Moved Permanently

回复标题:

> HTTP/1.1 301 Moved Permanently Date: Thu, 06 Sep 2012 14:32:41 GMT
> Server: Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4
> mod_perl/2.0.4 Perl/v5.10.1 Location:
> http://localhost/SAMPLE-CODES/backbone-mysql-reading-json/websites/
> Content-Length: 417 Keep-Alive: timeout=5, max=100 Connection:
> Keep-Alive Content-Type: text/html; charset=iso-8859-1

我不确定导致此重定向的原因。

我在文件夹c:\xampp\htdocs\SAMPLE-CODES\backbone-mysql-reading-json\中有以下.htaccess:

的.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]

1 个答案:

答案 0 :(得分:4)

这可能是因为正在进行重定向的mod_dir and the DirectorySlash directive。启用它,当apache查看URI并认为它正在访问目录,并且缺少尾部斜杠时,它会使用尾部斜杠重定向到URI。它始终默认打开,因为如果关闭它会出现信息泄露安全问题。但是如果你通过index.php脚本路由所有内容,它甚至可能都没关系,只需在你的htaccess文件中添加DirectorySlash Off就可以关闭它(并为你可以访问目录的目录启用它,比如css或js或图像等