2011-05-15 39 views
0

所以,我试图添加我自己的RewriteRule除了WordPress已经有了。一个小背景。我正在使用的网站是由一个自定义的CMS构建的,但也有一个由WordPress驱动的博客。因此,继承人什么我迄今:除了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的重写代码的几行。但是,似乎它覆盖了我写的规则。帮帮我?

哦,另外,我试图摆脱位于/blog/index.php [L]之前的.,并用^替换它,它的工作原理...种类。它在我去/ blog /时加载了博客,但是当我去到/ blog/author/admin这样的东西时,我得到了404.

回答

0

我想你需要你的新规则之后添加最后的标志[L],否则继续进行处理,你的请求将被改写成'/blog/index.php'。

RewriteRule ^locations/(.*)$ /locations2.php?info=$1 [L] 
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> 

如果博客得到unreacheable,移动RewriteBase /到自定义改写后。另外,我认为,如果博客是在子目录中,RewriteBase应RewriteBase /blog/