.htaccess 为什么htaccess重定向被否决?

.htaccess 为什么htaccess重定向被否决?,.htaccess,mod-rewrite,mod-alias,.htaccess,Mod Rewrite,Mod Alias,我有: 重定向301/blog/?p=1 这很好,除非后面跟着: RedirectMatch 301 ^/blog(/)?(.*)$ http://www.new-site.com/blog/$2 我尝试过各种版本,包括RewriteRule,但都不起作用。如何保持第一个特定规则,并编写一个保持其请求uri和查询字符串规则的everything 谢谢好吧,假设只有这两行,我看到的是: 重定向301/blog/?p=1 重定向匹配301^/blog/?。$$2 这些基本上都在说同样的事情,也就是

我有:

重定向301/blog/?p=1

这很好,除非后面跟着:

RedirectMatch 301 ^/blog(/)?(.*)$ http://www.new-site.com/blog/$2
我尝试过各种版本,包括RewriteRule,但都不起作用。如何保持第一个特定规则,并编写一个保持其请求uri和查询字符串规则的everything


谢谢

好吧,假设只有这两行,我看到的是:

重定向301/blog/?p=1

重定向匹配301^/blog/?。$$2

这些基本上都在说同样的事情,也就是说,在一个匹配中,永久地将所有博客查询重定向到新站点

在第二个例子中,你说的是从一开始就匹配字符串/博客,可能会有一个斜杠,你会捕捉到,可能还有更多的信息,你也会捕捉到,然后把所有的信息放进博客/额外收集的信息中。这可能是问题的一部分,或者您可以通过对指令重新排序并查看较低的指令是否具有优先权来解决问题

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,并找到更独特的标识。

请发布您的.htaccess文件。这很可能是由写入顺序引起的,这就像一个操作顺序。如果htaccess文件中只有这两行,它仍然不起作用,但只有第一行效果很好!