htaccess 重定向附加查询字符串?

Posted

技术标签:

【中文标题】htaccess 重定向附加查询字符串?【英文标题】:htaccess redirect append query string? 【发布时间】:2010-11-06 19:39:11 【问题描述】:

我有一个需要将查询字符串转发到新 URL 的 htaccess 重定向,但它在重定向后被丢弃。谁能告诉我怎么了?

RewriteRule ^services/agents.*$          https://services.example.com/agents/ [R=301,L,QSA]

【问题讨论】:

【参考方案1】:

同样的规则在我的服务器上运行良好。问题应该是别的。 我在我的服务器上添加了相同的规则,我得到了以下重定向

http://mysite.com/services/agents/foo?foo=bar => https://services.mysite.com/agents/?foo=bar

请注意,您不需要添加 QSA 标志,因为目标不包含任何查询字符串。 This article 可能包含一些有用的信息来帮助您处理 Htaccess 和查询字符串。

【讨论】:

我想通了。我重定向到的服务器为 /agents/ => /services/agents 设置了自己的重定向。叹息..【参考方案2】:

一般来说,如果您没有为替换指定查询,则无需显式附加查询或使用 QSA 标志。但正如你所说,你的规则不起作用,试试这个:

RewriteRule ^services/agents.*$ https://services.example.com/agents/?%QUERY_STRING [R=301,L]

【讨论】:

以上是关于htaccess 重定向附加查询字符串?的主要内容,如果未能解决你的问题,请参考以下文章

将查询字符串附加到 htaccess PDF 重定向 URL

将域重定向到另一个域并将重定向的域附加为查询字符串

使用 .htaccess 将查询字符串附加到 URL [关闭]

htaccess 301 重定向 - 删除查询字符串 (QSA)

带有查询字符串的 URL 重定向 - htaccess

HTACCESS-重定向并删除所有查询字符串