2012-09-06 49 views
3

http://localhost/SAMPLE-CODES/backbone-mysql-reading-json/websites爲什麼我會用斜槓獲得301重定向到文件夾名稱?

的請求被重定向如下:

> 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] 
+0

是否還有其他可能涉及的.htaccess文件?也許@網站的根?顯示的一個沒有這樣做重定向。 – HeatfanJohn

+0

子文件夾中沒有其他.htaccess文件。我有一個虛擬主機配置在httpd.conf中可以產生影響嗎? – tucson

+0

我正在使用Slim PHP框架,而現在我懷疑我得到了這個:http://dev.slimframework.com/phpdocs/classes/Slim_Exception_RequestSlash.html – tucson

回答

4

這是在做重定向的mod_dir and the DirectorySlash directive可能是因爲。有了它,當apache查看一個URI並認爲它正在訪問一個目錄,並且缺少結尾的斜槓時,它將重定向到帶有斜槓的URI。它總是默認開啓,因爲如果您關閉了信息披露安全問題。但是,如果您通過index.php腳本來路由所有內容,則可能無關緊要,只需在您的htaccess文件中添加DirectorySlash Off即可關閉它(並將其打開用於可以訪問目錄的目錄,如css或js或圖像等

+0

請求這只是爲了確認我明白這是如何工作的,因爲這是默認情況下,只需在你的'LoadModule dir_module modules/mod_dir.so' r'httpd.conf'會啓用這種行爲? – HeatfanJohn

+0

@HeatfanJohn正確,在模塊加載的情況下,您將擁有301個重定向用於缺少結尾斜槓的目錄以及index.html自動成爲目錄索引(mod_dir的2個默認值) –

+0

非常感謝!在.htaccess中添加'DirectorySlash Off'修復了它。 – tucson

相關問題