【问题标题】:.htaccess 301 redirect inserting query string.htaccess 301 重定向插入查询字符串
【发布时间】:2015-08-31 07:14:59
【问题描述】:

我正在尝试在我的 .htaccess 文件中组织一个简单的 301 重定向,但遇到了一些问题。

我当前的代码看起来:

RewriteRule /contact/ http://www.example.com/connect/ [R=301,L,QSA]

虽然当你输入: http://www.example.com/contact/

它可以重定向,但在查询字符串中放置: http://www.example.com.au/connect/?field=contact

然后让一切都炸毁。我的 .htaccess 文件顶部有 301。我不确定为什么会这样。

任何建议将不胜感激。

【问题讨论】:

  • 如果您尝试RewriteRule http://www.example.com/contact/ http://www.example.com/connect/ [R=301,L,QSA] 会怎样?
  • 也可以试试RewriteRule contact/ http://www.example.com/connect/ [R=301,L,QSA]
  • @maxpovver 谢谢你的想法。您的两个解决方案都没有真正达到相同的结果。我认为这与 URL 中的通配符有关。添加 ^/?进入重写似乎已经成功了。

标签: apache .htaccess mod-rewrite redirect


【解决方案1】:
RewriteRule ^/?contact/?$ http://www.example.com/connect/? [R=301,L,QSA]

末尾的空问号很重要,因为它会丢弃 url 中的原始查询字符串。如果你是你

【讨论】:

  • 谢谢@starkeen,您的代码成功了。非常感谢您的帮助。
【解决方案2】:

请也试试这个:

RewriteRule ^contact/$ http://www.example.com/connect/? [L,R=301]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-02
    • 2012-08-16
    • 2014-11-11
    • 2015-05-27
    相关资源
    最近更新 更多