2017-05-04 91 views
0

我一直在網站上工作,並且最近對我的.htaccess文件做了一些更改。每當我去localhost/company時,它都會正確地重定向我,但是現在每當我到localhost/company時,它都會將我重定向到http://localhost/company.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php//,並顯示404頁錯誤,所以顯然這個頁面不存在。它將我重定向到錯誤的URL。重定向到錯誤的URL

我很確定這個問題來自我的.htaccess文件,我從3個月前回滾了.htaccess,並且這個問題仍然存在。

這裏是我的.htaccess:

RewriteEngine On 
RewriteRule ^config\.php - [R=404,L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/$ $1.php 
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule (.*)$ /$1/ [R=301,L] 
ErrorDocument 404 /404.php 
RewriteRule ^i(/.*)?/company /company [L,NC] 


# disable directory browsing 
Options All -Indexes 

<FilesMatch "\.(htaccess|htpasswd|ini|phps|fla|psd|log|sh|svn|7z|zip|rar|gz|tar)$"> 
Order Allow,Deny 
Deny from all 
</FilesMatch> 

我希望你能幫幫我!謝謝!

+0

當您刪除或註釋掉htaccess文件時,重定向會停止嗎? – mayersdesign

+0

否@mayersdesign – Mattx

+0

這是您最近的'.htaccess'文件嗎?如果您「從3個月前回滾了.htaccess」,那麼您可能會看到緩存重定向? – MrWhite

回答

0

正如評論中所述,如果contact.php不存在,您可能會得到此重定向循環。

RewriteEngine On 
RewriteRule ^config\.php - [R=404,L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/$ $1.php 
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php 

嘗試這些第幾行改變到(假設這.htaccess文件是在文檔根):

RewriteEngine On 
RewriteRule ^config\.php - [R=404,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{DOCUMENT_ROOT}/$1.php -f 
RewriteRule ^([^/]+)/$ $1.php [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{DOCUMENT_ROOT}/$1/$2.php -f 
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php [L] 

這簡單地檢查第一,該文件將存在,改寫前。我也爲這兩個指令添加了Llast) - 我看不到任何後來的規則都依賴於這些指令?