2011-06-10 52 views
0

所有我需要的是將改變「domainXYZ.com/anyphrase」變成「domainXYZ.com」重寫需要用簡單的重寫規則幫助(should't這容易嗎?)

這裏是我使用的是什麼:

RewriteCond %{HTTP_HOST} ^domainXYZ\.com 
RewriteCond %{SCRIPT_FILENAME} !wp-admin 
RewriteCond %{SCRIPT_FILENAME} !activity 
RewriteCond %{SCRIPT_FILENAME} !members 
RewriteCond %{SCRIPT_FILENAME} !groups 
RewriteRule ^([A-Za-z0-9-]+)/?$ index.php [L] 

注:我加入上述給我的。htaccess(在WP根)的頂部。我正在運行WP 3.1.3多站點(子域),WP MU域映射插件和domainXYZ.com上的buddypress。 domainXYZ.com是映射的域名,而不是實際的子域名。

我假設我的重寫規則會加載domainXYZ.com/index.php,它會加載wordpress網站的主頁。但是,我的buddypress皮膚中顯示「未找到頁面」響應(不是完整的錯誤404頁面)。

由於任何人誰可以幫助,喬

+0

如果我的解決方案不適合您,可以將RewriteLogLevel 1000和RewriteLog/tmp/rewritelog添加到主httpd.conf中。這將記錄Apache重寫路徑,因爲它試圖重寫URL。它會創建很多輸出,但它應該有助於找出問題。 – spuriousdata 2011-06-10 18:33:12

+0

我正在爲這個特定項目建立一個共享服務器,但我只是通過電子郵件發送支持來問我如何訪問重寫日誌。如果我聽到迴音,並且能夠從日誌中學到任何東西,我會告訴你。 – agentOOjoe 2011-06-10 20:30:11

回答

0

如果你在一個.htaccess添加的規則,我認爲你需要使用RewriteBase。

這應該工作

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

在主httpd.conf文件,用於文檔根目錄塊內,在底部,您可以添加這個(而不是的.htaccess):

<Directory /my/document/root> 
    # Other stuff here 
    # ... 

    # make this last: 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /index.php [L] 
</Directory> 
+0

感謝您的迴應! RewriteBase似乎是一個很有前途的解決方案,但是我的重寫規則仍然將我發送到我的主題中的「頁面未找到」響應頁面。 我不確定您對Buddypress有多熟悉,但是您認爲bp-core-catchuri.php文件可能會導致一些衝突嗎? – agentOOjoe 2011-06-10 20:11:45

0

想到我會讓人們知道我在這個挑戰中走了一條不同的路線。不要試圖讓我的重寫工作,我只是改變了WP查處了404

不幸的是,我不得不改變一些WP核心文件,但功能我改變了:

set_404();(此讓我給我的主題傳達某些404的應改爲加載主頁模板)

status_header();(從發送404頭停止輸入網址不存在的特定類型時)