我有:
Redirect 301 /blog/?p=1 http://www.new-site.com/blog/2000/10/myslug/
工作正常,除非后面跟着:
RedirectMatch 301 ^/blog(/)?(.*)$ http://www.new-site.com/blog/$2
我尝试了各种版本,包括RewriteRule,但没有任何效果。如何保留第一个特定规则,并写一个“其他一切保持其请求uri和查询字符串”规则?
由于
答案 0 :(得分:0)
好吧,假设这些只是两条线,我看到的是:
Redirect 301 /blog/?p=1 http://www.new-site.com/blog/2000/10/myslug/
RedirectMatch 301 ^/blog(/)?(.*)$ http://www.new-site.com/blog/$2
这些基本上是说同样的事情,即在匹配时,将所有博客查询永久重定向到新网站。
对于第二个,你说的是从一开始就匹配字符串/blog
,你可以捕获一个可能的斜杠,也可能是你还要捕获的更多信息,然后把所有这些信息到blog/extra-picked-up-info
。这可能是问题的一部分,或者您可以通过重新排序指令来解决它,并查看lower指令是否优先。
RedirectMatch 301 /blog(?:/\?)?(.*)?$ http://www.new-site.com/blog/$1
Redirect 301 /blog/?p=1 http://www.new-site.com/blog/2000/10/myslug/
否则,您将需要重新检查您的URI,并找到更具识别性的内容。