我不太了解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索引文件工作正常,但由于wordpress htaccess文件为post urls编写规则,它们不再工作。
总之,我认为两个htaccess文件(第一个在根目录中,第二个在/blog目录中)之间存在冲突,即创建一个重定向循环。
任何关于我如何解决这个问题的想法都会得到很好的接受。
谢谢大家的期待。
发布于 2016-07-12 14:47:54
若要防止重写循环,可以使用以下方法:
RewriteEngine on
#stop internal redirection
RewriteCond %{ENV_REDIRECT_STATUS} 200
RewriteRule ^ - [L]
#Redirect /foo.html to /foo.php
RewriteRule ^(.*?)\.html?$ /$1.php [L,R]用上述规则替换RedirectMatch和RewriteRule
https://stackoverflow.com/questions/38331790
复制相似问题