.htaccess 重写与 $_GET 参数冲突

发布于 2024-10-21 10:08:55 字数 625 浏览 1 评论 0原文

因此,集成这个第三方跟踪服务,将 $_GET 参数传递到我们的产品页面。该页面在 .htaccess 中重写,并且传递以问号 (?) 开头的查询字符串,并且 $_GET 不会获取它,除非它是与符号 (&)。

这就是 htaccess 重写。

RewriteRule ^the-url/(.*?)/(.*?)/?$ /the-page.php?slug=$1/$2 [L]

这有效

http://www.site.com/the -url/someones-name/a-title&something=4

这不是(但我需要它。注意问号而不是&符号)

http://www.site.com/the-url/someones-name/a-title?something=4

谢谢

So, integrating this third party tracking service that passes a $_GET parameter to our product pages. The page is rewritten in .htaccess and they pass the query string starting with a question mark (?) and $_GET doesn't pick it up unless its an ampersand (&).

So this is the htaccess rewrite.

RewriteRule ^the-url/(.*?)/(.*?)/?$ /the-page.php?slug=$1/$2 [L]

This works

http://www.site.com/the-url/someones-name/a-title&something=4

This does not (but I need it to. Notice the question mark rather than ampersand)

http://www.site.com/the-url/someones-name/a-title?something=4

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

轻拂→两袖风尘 2024-10-28 10:08:55

我想您必须使用 [QSA] 标志:

RewriteRule ^the-url/(.*?)/(.*?)/?$ /the-page.php?slug=$1/$2 [L,QSA]

如果设置了此标志,则将附加给定的查询字符串(QSA = 查询字符串附加),而不是删除。

I guess you have to use the [QSA] flag:

RewriteRule ^the-url/(.*?)/(.*?)/?$ /the-page.php?slug=$1/$2 [L,QSA]

If this flag is set, the given query string will be appended (QSA = Query-String Append), not removed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文