2013-10-23 102 views
2

我需要重寫一些wordpress永久鏈接,以便site.ca/anypage/page/anytab重寫爲site.ca/anypage/?pagetab=anytab。我試過了一堆我認爲應該可以工作的重寫,但是wordpress只是給了我一個完整的URL輸入404(而不是恰當的querystring'd頁面)。如何在wordpress永久鏈接URL中重寫查詢字符串的路徑?

這裏就是我這麼遠(使用特定的頁面用於測試,而不是anypage /頁/ anytab:

RewriteRule ^community-alumni/conference-services/page/(.*)$ community-alumni/conference-services/?pagetab=$1 [L] 

這一重寫的只是給我一個404錯誤然而,我所知道的正則表達式,至少是合格,因爲如果我改變複寫R=301,L重定向後,頁面並重定向到querystring'd頁面並拉起相應的內容,即:

RewriteRule ^community-alumni/conference-services/page/(.*)$ community-alumni/conference-services/?pagetab=$1 [R=301,L] 

重定向到community-alumni/conference-services/?pagetab=summer-hotel和網頁內容中的拉。所以我可以' t看看爲什麼重寫應該在與查詢字符串的URL相同的內容中拉動404 - 我有一種感覺,它與wordpress有關?在wordpress .htaccess我在RewriteBase之前和之前RewriteRule ^index\.php$ - [L]

任何幫助表示讚賞。謝謝。

回答

0

I have a feeling it has to do with wordpress?

這可能是的,我敢肯定有一些內部的使用他們的API重寫和(可能)的post_rewrite_rules鉤處理它WordPress的方式。 (在wordpress stack exchange更多信息。

但是,如果不工作,你總是可以嘗試P標誌內部代理請求,使得於WordPress的REQUEST_URI控制器認爲是/page/後沒有所有的東西之一(這很可能是什麼造成WordPress的嘔吐)

RewriteRule ^community-alumni/conference-services/page/(.*)$ /community-alumni/conference-services/?pagetab=$1 [L,P] 
+0

感謝您的答覆我打算使用WP重寫, = page-slug',在那裏我將無法輕鬆地從正則表達式中捕獲路徑中的slu ... ......您的建議正在處理的例外情況是我必須將服務器添加到重寫中,否則它會帶上bac k'/ Applications/MAMP/htdocs/...'而不是'http:// localhost:8888/...' - 這很好,但我可以在live.htaccess上更改它。更新你的答案,PLZ,這樣我就可以接受它。 – tsdexter

+0

我也修改它以回答'anypage/page/anytab'的原始問題 - 這裏是最後的重寫:'RewriteRule ^(。*)/ page /(.*)$ http:// localhost:8888/site/$ 1 /?pagetab = $ 2&pagepath = $ 1 [P,L]' – tsdexter

+0

@tsdexter這是我的不好。你只需要在前面添加一個'/'來使URI絕對地址爲 –