Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 重定向到错误的URL_.htaccess_Url - Fatal编程技术网

.htaccess 重定向到错误的URL

.htaccess 重定向到错误的URL,.htaccess,url,.htaccess,Url,我一直在一个网站上工作,最近对我的.htaccess文件做了一些更改。每当我转到localhost/company时,它都会正确地重定向我,但现在每当我转到localhost/company时,它会将我重定向到404页面错误,所以很明显,该页面不存在。它将我重定向到错误的URL 我很确定这个问题来自我的.htaccess文件,我已经从3个月前回滚了.htaccess,这个问题仍然存在 这是我的.htaccess: RewriteEngine On RewriteRule ^config\.php

我一直在一个网站上工作,最近对我的.htaccess文件做了一些更改。每当我转到localhost/company时,它都会正确地重定向我,但现在每当我转到localhost/company时,它会将我重定向到404页面错误,所以很明显,该页面不存在。它将我重定向到错误的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>
重新编写引擎打开
重写规则^config\.php-[R=404,L]
重写cond%{REQUEST_FILENAME}-F
重写规则^([^/]+)/$$1.php
重写规则^([^/]+)/([^/]+)/$/$1/$2.php
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_URI}!(\[a-zA-Z0-9]{1,5}|/)$
重写规则(.*)$/$1/[R=301,L]
ErrorDocument 404/404.php
重写规则^i(/.*)/公司/公司[L,NC]
#禁用目录浏览
选项所有-索引
命令允许,拒绝
全盘否定

我希望你能帮助我!谢谢

如评论中所述,如果
contact.php
不存在,您可能会得到这个重定向循环

尝试将前几行更改为(假设此
.htaccess
文件位于文档根目录中):


这只是在重写之前首先检查文件是否存在。我还将
L
last
)添加到这两个指令中-我看不出以后的规则是否依赖于这些?

当您删除或注释htaccess文件时,重定向是否停止?否@mayersdesign这是您最近的
.htaccess
文件吗?如果您已经“从3个月前回滚了.htaccess”,那么您可能只是看到一个缓存重定向?那么我假设您有一个缓存页面。要再次检查,请在htaccess的顶部写入一些乱七八糟的内容并重新加载。。。你应该得到一个错误这是我最近的.htaccess文件,是的。我已经回过头来,但问题仍然没有解决。
RewriteEngine On
RewriteRule ^config\.php - [R=404,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.php
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
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]