网站htaccess重定向与WordPress冲突



我对htaccess文件编码的工作原理不太了解,但是我的根目录中有以下htaccess代码,它负责从url.html重定向到url.php:

RedirectMatch permanent ^(.*).htm(l?)$ $1.php 

RewriteEngine on
RewriteRule ^index.htm$ index.php [NC,R]

这段代码很重要,因为网站上的所有文件名都已从"html"更改为"php",我希望在更改之前制作的所有书签和链接保持有效。

问题是,上面的htaccess代码似乎阻止了wordpress博客的打开,显示消息"尝试打开url时发生了太多重定向"。

显然,发生了某种重定向循环,但我一生都无法弄清楚问题到底是什么。

在我的wordpress

目录(/blog)中,htaccess文件包含通常的wordpress:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
# END WordPress

当上面的htaccess文件被删除时,wordpress索引文件工作正常,但由于wordpresshtaccess文件为帖子url写入规则,它们不再工作。

总而言之,我认为两个 htaccess 文件(第一个在根目录中,第二个在/blog 目录中)之间存在冲突,这正在创建一个重定向循环。

关于我如何解决这个问题的任何想法都会受到好评。

谢谢大家的期待。

要防止重写循环,可以使用以下内容:

RewriteEngine on
#stop internal redirection
RewriteCond %{ENV_REDIRECT_STATUS} 200
RewriteRule ^ - [L]
#Redirect /foo.html to /foo.php 
RewriteRule ^(.*?).html?$ /$1.php [L,R]

将重定向匹配和重写规则替换为上述规则

最新更新