htaccess mod-rewrite与wordpress的冲突

时间:2012-02-15 19:10:23

标签: wordpress .htaccess mod-rewrite

我正在使用htaccess文件来处理使用以下规则的项目:

RewriteEngine on

RewriteRule ^page/([^/\.]+)/?$ page.php?page=$1 [L]
RewriteRule ^([^/\.]+)/?/([^/\.]+)/?$ page.php?theme=$1&pg=$2 [L]

RewriteRule ^([^/\.]+)/?$ page.php?theme=$1&pg=$1 [L]
RewriteRule ^([^/\.]+)/?/$ page.php?theme=$1&pg=$1 [L]

有效地将domain.com/theme/page更改为domain.com/page.php?theme=theme&pg=page

我遇到的问题是我在这个项目中使用了wordpress安装,安装在domain.com/blog下。

所以,访问domain.com/blog正在重写domain.com/page.php?theme=blog并打破wordpress安装。

有没有办法可以为重写规则设置一个例外,以便domain.com/blog正确加载wp博客?

2 个答案:

答案 0 :(得分:0)

尝试排除/blog处理如下

RewriteEngine on
RewriteBase / 

#if its blog, do nothing
RewriteRule ^blog/  - [L,NC] 

#rest of your rules go here

答案 1 :(得分:0)

在顶部添加基础

RewriteBase /

显而易见的答案只是在此之后添加RewriteRule ^blog/ - [L]规则,但我对你的Q不了解的是,Wordpress通常会在{{{{{{} {{}}中创建它自己的优化.htaccess 1}}子目录。只是因为你的DOCROOT /blog文件中的规则被触发告诉我这不存在,因为如果它确实存在,那么这将被执行而不是/ blog / * URIs。你看过WP htaccess Control插件了吗?