2017-05-04 41 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) - 我看不到任何后来的规则都依赖于这些指令?