2010-09-13 84 views
1

我爲WordPress 3.0.1插件 「主題我登錄」,這導致我的用戶的個人資料頁,在這裏:的WordPress的mod_rewrite的主題重定向

domain.com/login-2?action=profile

,而不是在這裏:

domain.com/profile

所以我試圖用mod_rewrite的解決這樣的:

RewriteRule ^profile /login-2?action=profile

但它似乎什麼都不做。我懷疑這是WordPress發生的一些奇怪的事情,但如果我的重寫規則看起來是正確的,然後再進一步挖掘,我想問問這裏的人。我做對了嗎?

+0

如果您還沒有,可以嘗試在WordPress專用網站上發帖:http:/ /wordpress.stackexchange.com/ – Eric 2010-09-13 22:26:53

回答

0

默認情況下,我相信WordPress在路由請求時使用的值爲REQUEST_URI。您的規則

RewriteRule ^profile /login-2?action=profile 

...應該正確地改寫/profile/login-2?action-profile,但由於在PHP $_SERVER[REQUEST_URI]值是基於原始請求WordPress會不遵守這一變化發送給服務器。

可能可以通過讓WordPress的使用PATH_INFO通過,而不是默認的WordPress永久鏈接塊的修改,以解決此問題:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^.*$ index.php/$0 

它也可以通過使用P flag來代理重寫的請求,這將更新REQUEST_URI。它帶有創建新請求的開銷,所以我不確定我是否會推薦它:

RewriteRule ^profile /login-2?action=profile [P]