【问题标题】:Add dynamic query vars to all urls with .htaccess使用 .htaccess 将动态查询变量添加到所有 url
【发布时间】:2015-09-01 02:13:58
【问题描述】:

我正在尝试将查询参数添加到站点上所有 URL 的末尾,但该值需要是动态的。

RewriteCond %{QUERY_STRING} !(^|&)testing=true(&|$) [NC]
RewriteRule ^ %{REQUEST_URI}?testing=true [L,QSA,R]

This 答案(上面的代码)非常接近我的需要,但我需要根据用户提供的值更改“真”。一个示例是各种广告系列 ID

http://domain.com/?campaign=32324

当用户点击此页面的链接时,这些链接应附加 ?campaign=32324

http://domain.com/somepage/?campaign=43454

【问题讨论】:

  • 从您在问题中引用的答案中发布相关代码会节省时间。
  • @anubhava domain.com/?campaign=XXXX 应该重定向在该页面上点击的任何链接,使其具有相同的广告系列 ID。例如:domain.com/somepage 应该重定向到 domain.com/somepage/?campaign=XXXX 如果从主页点击。
  • 不清楚。这是用户已经打开的页面:http://domain.com/somepage/?campaign=43454 现在澄清它应该重定向到什么?
  • 不应在该页面上将它们重定向到任何地方。但是,如果他们在该页面上单击链接,他们去的下一页也应该有相同的 ?campaign=XXX 附加到它。 QSA 标志让我非常接近这一点,但“真”在哪里,我需要它作为动态广告系列 ID。

标签: php .htaccess


【解决方案1】:

如果您想将查询字符串附加到 URL,我相信这就是您要查找的内容。

当然,您的参数和/或其值可以通过多种方式填充。它可以从上一页传递并由$_GET['something'] 填充,也可以由数据库查询提供并从结果中填充。

RewriteEngine On    # Turn on the rewriting engine
RewriteRule    ^([A-Za-z0-9_-]+)$    your-page.php?your-parameter=$1    [NC,L] # Handle query string with no slash
RewriteRule    ^([A-Za-z0-9_-]+)/$    your-page.php?your-parameter=$1    [NC,L] # Handle query string with a slash

[A-Za-z0-9_-] 部分允许参数值包含大小写字母、数字、下划线和连字符。如果您想要的只是数字(如您的示例中),只需删除方括号之间的所有内容,除了 0-9 像这样... [0-9]

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2015-02-02
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 2013-04-28
  • 2012-12-16
相关资源
最近更新 更多