【问题标题】:htaccess mod-rewrite conflict with wordpresshtaccess mod-rewrite 与 wordpress 冲突
【发布时间】:2012-02-16 03:56:46
【问题描述】:

我正在将 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 博客?

【问题讨论】:

    标签: wordpress .htaccess mod-rewrite


    【解决方案1】:

    尝试排除/blog,如下处理

    RewriteEngine on
    RewriteBase / 
    
    #if its blog, do nothing
    RewriteRule ^blog/  - [L,NC] 
    
    #rest of your rules go here
    

    【讨论】:

    • 这几乎可以工作。添加这意味着domain.com/blog 正在加载wp,但它加载为domain.com/blog/?theme=blog&pg=blog,如果我尝试domain.com/blog/ 它不起作用。这也不适用于博客上的详细信息页面。
    【解决方案2】:

    在顶部添加基础

    RewriteBase /
    

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

    【讨论】:

      猜你喜欢
      • 2015-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-15
      • 2012-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多