【问题标题】:redirectMatch 301 regex is not workingredirectMatch 301 正则表达式不起作用
【发布时间】:2011-07-29 18:32:09
【问题描述】:

我想重定向http://site.com/home?page=123 http://site.com/home 但以下规则不起作用

redirectMatch 301 ^/home/\?(.*)$ http://www.site.com/

任何帮助将不胜感激。谢谢

【问题讨论】:

  • home 之后的 / 应该是可选的。 ^/home/?\?(.*)$
  • @Loveleen Kaur 1) 您能否澄清一下您要从哪个 URL 重定向以及最终 URL 是什么(例如从 => 到) - 现在还不是很清楚。 2)你希望如何做到这一点 - 使用 Redirect/RedirectMatch 指令 .. 或使用 mod_rewrite ?
  • @Lazyone, 1. source= www.site.com/home?page=123 destination www.site.com/ 2. 只要重定向有效,任何方法都可以接受

标签: .htaccess redirect httpd.conf


【解决方案1】:

很遗憾,RedirectMatch 指令不适用于查询字符串——仅适用于 URL 的路径部分。为此,您必须使用 mod_rewrite

Options +FollowSymLinks

RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} =page=123
RewriteRule ^home$ http://www.site.com/? [R=301,L]
  1. 将它放在网站根文件夹的 .htaccess 中。如果放置在其他地方,可能需要进行一些调整。

  2. 它只会重定向/home?page=123 的请求。所有其他请求(例如/home?page=123&extra=hello)将被忽略。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    相关资源
    最近更新 更多