除了Wordpress之外还重写规则'

时间:2011-05-15 22:28:06

标签: wordpress mod-rewrite

所以,我正在尝试添加自己的RewriteRule以及Wordpress已经拥有的内容。一点点背景。我正在开发的网站是基于自定义CMS构建的,但也有一个由WordPress提供支持的博客。那么,到目前为止我所拥有的是:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# Custom rewrite for locatons
RewriteRule ^locations/(.*)$  /locations2.php?info=$1

# Wordpress rewrite
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>

我还摆脱了几行似乎不必要的Wordpress Rewrite代码(一切仍然有效......我想)。但是,似乎它覆盖了我写的规则。帮助

哦,而且,我只是试图摆脱/blog/index.php [L]之前的.并将其替换为^,它起作用了......的。当我去/ blog /时,它加载了博客,但当我去了/ blog / author / admin之类的东西时,我得到了404。

2 个答案:

答案 0 :(得分:0)

您是否尝试在locations2.php之前删除RewriteBase /和斜杠?

这样的事情:

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Custom rewrite for locatons
    RewriteRule ^locations/(.*)$  locations2.php?info=$1

    # Wordpress rewrite
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /blog/index.php [L]
</IfModule>

如果博客无法访问,请在自定义重写后移动RewriteBase /。另外,我相信如果博客在子目录中,RewriteBase应该是RewriteBase /blog/

答案 1 :(得分:0)

我认为你需要在新规则之后添加最后一个标志[L],否则处理将继续,你的请求将被重写为'/blog/index.php'。

RewriteRule ^locations/(.*)$  /locations2.php?info=$1 [L]