htaccess mod重写与wordpress冲突

htaccess mod重写与wordpress冲突,wordpress,.htaccess,mod-rewrite,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 ^([^/\.]+)/?

我正在为使用以下规则的项目使用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 blog?

尝试按如下方式排除正在处理的/blog

RewriteEngine on
RewriteBase / 

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

#rest of your rules go here

在顶部添加底部

RewriteBase /

显而易见的答案是在这之后添加一个RewriteRule^blog/-[L]规则,但我不明白你的问题是Wordpress通常会在/blog子目录中创建自己的optimized.htaccess。仅凭DOCROOT.htaccess文件中的规则正在触发这一事实就可以告诉我这并不存在,因为如果它存在,那么它将被/blog/*uri执行。你看过插件了吗

这几乎奏效了。添加这意味着domain.com/blog正在加载wp,但它是以domain.com/blog/?theme=blog&pg=blog的形式加载的,如果我尝试domain.com/blog/则无法工作。这也不适用于博客上的详细页面。