首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网站htaccess与wordpress重定向冲突

问网站htaccess与wordpress重定向冲突
EN

Stack Overflow用户
提问于 2016-07-12 14:31:22
回答 1查看 1.2K关注 0票数 2

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

代码语言:javascript
复制
RedirectMatch permanent ^(.*)\.htm(l?)$ $1.php 


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

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

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

显然,有某种重定向循环发生,但我无法为我的生活准确地找出问题是什么。

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

代码语言:javascript
复制
# 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目录中)之间存在冲突,即创建一个重定向循环。

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

谢谢大家的期待。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-12 14:47:54

若要防止重写循环,可以使用以下方法:

代码语言:javascript
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38331790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档