Apache 重定向301中的重定向太多

Apache 重定向301中的重定向太多,apache,redirect,Apache,Redirect,我想将301从旧的ulr重定向到新的url 旧url:/php/zend framework/captcha codigo反垃圾邮件zend framework 新url:http://www.demo31.com/blog/php/zend-framework/captcha-codigo-anti-spam-zend-framework 在.htaccess中,我这样重定向 RedirectMatch 301 /php/zend-framework/captcha-codigo-anti-s

我想将301从旧的ulr重定向到新的url

旧url:
/php/zend framework/captcha codigo反垃圾邮件zend framework

新url:
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\u TOO\u MANY\u REDIRECTS”


我做错了什么

看起来两个URI都在同一主机上(
www.demo31.com
),因此当您使用
RedirectMatch
时,URI中匹配的部分就是重定向的一部分。范例

如果我去:

http://www.demo31.com/php/zend-framework/captcha-codigo-anti-spam-zend-framework
  • URI是
    /php/zend framework/captcha codigo反垃圾邮件zend framework
  • RedirectMatch
    指令匹配URI,重定向到:

    http://www.demo31.com/blog/php/zend-framework/captcha-codigo-anti-spam-zend-framework
    
  • 新的URI是
    /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
    
    ^
    $

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

    Thx!对我有用

    谢谢你的回答,但在两种情况下我得到了相同的结果:两次重定向:(((嗨!!!一切正常!!!我从另一个目录更改.htaccess文件时出错!!!如果我像你评论的那样进行更改,一切正常!!!