2011-05-15 38 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/