2010-05-11 103 views
1

說目前我有喜歡的網址:URL重寫和重定向問題

http://mydomain.com/showpost.php?p=123

現在我想讓它更漂亮:

http://mydomain.com/123/post-title

我使用Apache重寫它抓住段'123'並將網址返回到

http://mydomain.com/showpost.php?p=123

好的。這是問題。我想將Google索引的原始不漂亮的網址重定向到漂亮的版本,我想這樣做是因爲我聽說Google可能會懲罰我,如果他看到多個網址指向相同的內容。所以,我需要

重定向到/showpost.php?p=123/123 /後標題

這我在我的PHP代碼堂妹做有沒有辦法Apache將能夠找出'後頭銜」,但如果我把重定向代碼的PHP代碼,那麼這將是一個無限循環,如:

請求:/showpost.php?p=123

重定向到:/ 123/post-title

改寫爲:/showpost.php?p=123

再次重定向到:/ 123 /後標題

...

等等等等等等。

對不起,我應該首先谷歌的解決方案,但我真的不知道如何描述我的英語情況,使谷歌返回合理的結果。

請幫幫我。謝謝。

回答

2

您可以在重寫規則中設置一個請求變量,在RewriteRule行的末尾添加類似[E=rewritten:true]的內容,以記錄重寫已完成的事實。在你的PHP中,你應該能夠以$_SERVER['rewritten']的身份訪問它,並且只有在該標誌不存在的情況下才能進行重定向。

或者,您可以使用重寫規則將非漂亮的URL重定向到沒有帖子標題的漂亮URL,然後使用應用程序代碼發出另一個添加了帖子標題的重定向。當然,使用兩個重定向不太理想,但它只是一個臨時措施,直到搜索引擎更新其索引,然後您可以將其刪除。

請確保您使用301永久移動重定向,順便說一句。