.htaccess 为什么要用斜杠将301重定向到文件夹名?

.htaccess 为什么要用斜杠将301重定向到文件夹名?,.htaccess,redirect,.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

请求
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]

这可能是因为正在执行重定向的。启用该选项后,当apache查看URI并认为它正在访问一个目录,并且缺少尾随斜杠时,它将301重定向到带有尾随斜杠的URI。默认情况下,它始终处于打开状态,因为如果将其关闭,则会出现信息披露安全问题。但是,如果您通过index.php脚本路由所有内容,那么这可能根本不重要,您只需在htaccess文件中添加
DirectorySlash off
即可将其关闭(并为您可以访问目录的目录打开它,如css或js或图像等。

是否还有其他.htaccess文件可能涉及?可能是网站的根目录?显示的文件没有执行此重定向。子文件夹中没有其他.htaccess文件。我在httpd.conf中有一个VirtualHost配置。这会有影响吗?我就是我们我怀疑现在我明白了:问这个问题只是为了确认我理解它是如何工作的,因为默认情况下这是打开的,只有
LoadModule dir\u module modules/mod\u dir。那么
httpd.conf
中的
将启用此行为?@HeatfanJohn正确,加载模块后,您将有301个redi对于缺少尾部斜杠的目录的RECT以及自动作为目录索引的index.html(mod_dir的两个默认值)非常感谢!在.htaccess中添加“DirectorySlash Off”修复了它。