2012-05-09 94 views
0

我試圖做一個301重定向到一個新的類別名稱的一部分:帶重定向的.htaccess的URL

http://www.site.com/category1/post1/http://www.site.com/category1-new/post1/

還有其他的網頁,以及與「類別1」在他們的URL中,所以它必須完全是「/ category1 /」,並在域名後面。

我試過不同的模式,但它們總是以無限循環結束。

編輯:

代碼:

RewriteCond %{HTTP_HOST} ^site-suchen.de$ [OR] 
RewriteCond %{HTTP_HOST} ^www.site-suchen.de$ 
RewriteRule ^site\/(.*)$ "http://www.site-suchen.de\/site-new\/$1" [R=301,L] 

所以實際的URL:

http://www.site-suchen.de/site/post1 

需要重定向到

http://www.site-suchen.de/site-new/post1 

感謝。

回答

0

這裏的重要事情可能是您希望使用^和$來標記您匹配的字符串的開頭和結尾。儘管這只是一個猜測,除非你發佈了一些你已經嘗試過的代碼。

RewriteRule ^category1/post1/$ category1-new/post1/ 

,也可能是(我記不太清楚了,你是否在圖案和/或替換字符串指定/):

RewriteRule ^/category1/post1/$ /category1-new/post1/ 
+0

嗨,對不起,如果我不清楚,但「post1」是動態的。我也試過這個,但它仍然以無盡的重定向結束。我已經發布了我的代碼,其上面有一個無限循環。我猜它與「網站新」有關,因爲如果沒有它,它會很好地重定向。 – Jenny

0

你可以使用RedirectMatch?

RedirectMatch 301 ^/(site1|site2|category1)(/.*|$) /$1-new$2 

此代碼是從長遠來看可維護,因爲你可以添加新的路徑括號 內部(站點1站點2類推薦等)

我想這在我的本地,它應該解決你的問題

乾杯!

+0

謝謝,我認爲這是最好的方法,但我仍然陷入無限循環。然而,在最後刪除$ 2可以解決問題,但只能重定向到http://www.site-suchen.de/site1-new/,因此「post1」slu is失蹤。你能幫我追回URL的最後部分嗎? – Jenny

+0

你可以試試嗎? RedirectMatch 301^/(site1 | site2 | category1)(。*)/ $ 1-new $ 2 – fedmich

+0

謝謝。它重定向到site-suchen.de/site1-new-new-new-new-new-new-new-new-new-new-new-new-new-new-new-new-new-new-new-new-new ,然後一個無限循環.. – Jenny