0

我想将 301 从旧 ulr 重定向到新 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”。

我究竟做错了什么?

4

2 回答 2

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. 但是,该指令再次RedirectMatch匹配 URI ,因为它包含/php/zend-framework/captcha-codigo-anti-spam-zend-framework

尝试更改RedirectMatch为 just 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

^$

于 2012-08-18T04:39:41.430 回答
0
RewriteRule ^bad_url$ good_url [R=301,L] 

谢谢 !为我工作

于 2016-07-11T13:07:54.960 回答