我想将旧的ulr重定向301到新的URL。
旧网址:/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”。
我做错了什么?
答案 0 :(得分:2)
看起来两个URI都位于同一主机(www.demo31.com
)上,因此当您使用RedirectMatch
时,匹配的URI部分是重定向的一部分。实施例
如果我去:
http://www.demo31.com/php/zend-framework/captcha-codigo-anti-spam-zend-framework
/php/zend-framework/captcha-codigo-anti-spam-zend-framework
RedirectMatch
指令与URI匹配,重定向到:
http://www.demo31.com/blog/php/zend-framework/captcha-codigo-anti-spam-zend-framework
/blog/php/zend-framework/captcha-codigo-anti-spam-zend-framework
RedirectMatch
指令再次匹配URI ,因为它包含/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
(^
和$
答案 1 :(得分:0)
RewriteRule ^bad_url$ good_url [R=301,L]
谢谢!适合我