2012-08-17 160 views
0

我想將舊的ulr重定向301到新的url。重定向過多重定向301

舊網址:/php/zend-framework/captcha-codigo-anti-spam-zend-framework

新網址:http://www.demo31.com/blog/php/zend-framework/captcha-codigo-anti-spam-zend-framework

在.htaccess我做這個重定向這樣的...

RedirectMatch 301 /php/zend-framework/captcha-codigo-anti-spam-zend-framework http://www.demo31.com/blog/php/zend-framework/captcha-codigo-anti-spam-zend-framework 

但我有錯誤 「ERR_TOO_MANY_REDIRECTS」。

我在做什麼錯?

回答

2

看起來兩個URI都在同一個主機上(www.demo31.com),所以當你使用RedirectMatch時,匹配的URI部分就是重定向的一部分。例如

如果我去:

http://www.demo31.com/php/zend-framework/captcha-codigo-anti-spam-zend-framework 
  1. URI是/php/zend-framework/captcha-codigo-anti-spam-zend-framework
  2. RedirectMatch指令的URI相匹配,重定向到:

    http://www.demo31.com/blog/php/zend-framework/captcha-codigo-anti-spam-zend-framework 
    
  3. 新的URI是/blog/php/zend-framework/captcha-codigo-anti-spam-zend-framework
  4. 然而,
  5. RedirectMatch指令中的URI 匹配再次因爲它contaings /php/zend-framework/captcha-codigo-anti-spam-zend-framework

嘗試改變RedirectMatch只是Redirect。或者,如果你只想要那個特定URI重定向(而不是像/php/zend-framework/captcha-codigo-anti-spam-zend-framework/some/other/stuff也被重定向,添加一些分隔符:

RedirectMatch 301 ^/php/zend-framework/captcha-codigo-anti-spam-zend-framework$ http://www.demo31.com/blog/php/zend-framework/captcha-codigo-anti-spam-zend-framework 

(在^$

+0

感謝您的回答,但在兩種情況下,我得到了同樣的結果:兩個很多重定向:(((( – 2012-08-18 05:30:11

+0

嗨!!!一切都好吧!!!我犯了一個錯誤更改.htaccess文件從另一個目錄!!!如果我進行更改就像你評論過的一切都很好! – 2012-08-19 15:12:04

0
RewriteRule ^bad_url$ good_url [R=301,L] 

THX對我的作品