【问题标题】:Why htaccess redirect being overruled?为什么 htaccess 重定向被否决?
【发布时间】:2011-09-06 17:25:30
【问题描述】:

我有:

Redirect 301 /blog/?p=1 @987654321@

效果很好,除非后面跟着:

RedirectMatch 301 ^/blog(/)?(.*)$ http://www.new-site.com/blog/$2

我尝试了各种版本,包括 RewriteRule,但没有任何效果。如何保留第一个特定规则,并编写“其他所有内容都保留其请求 uri 和查询字符串”规则?

谢谢

【问题讨论】:

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

标签: .htaccess mod-rewrite mod-alias


【解决方案1】:

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

Redirect 301 /blog/?p=1 @987654321@

RedirectMatch 301 ^/blog(/)?(.*)$ @987654322@$2

这些基本上是在说同样的事情,即在匹配时,将所有博客查询永久重定向到新站点。

你说的第二个是从开头匹配字符串/blog 与一个可能的斜杠,你将捕获它,可能还有更多信息,你也将捕获它们,然后将所有这些信息放入blog/extra-picked-up-info。这可能是问题的一部分,或者您可以通过重新排序指令并查看较低的指令是否获得优先级来解决它。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-30
    • 2011-08-01
    • 2012-02-04
    • 2013-02-19
    • 2021-05-19
    • 2017-06-12
    相关资源
    最近更新 更多