【问题标题】:Multiple and Variable parameters URL rewriting多参数和可变参数 URL 重写
【发布时间】:2013-01-27 13:30:04
【问题描述】:

我不知道如何重写这种类型的 URL:

mywebsite/param1-val1-param2-val2-param3-val3-param4-val4.html 

这真的很简单,但我的问题是我的参数是变量,例如:

mywebsite/param1-val1-param3-val3-param4-val4.html 

mywebsite/param3-val3-param4-val4.html 

所以,参数的数量并不总是相同的。有时可能只有一个,有时可能是 10 个或更多。它重定向到一个搜索脚本,该脚本将通过 GET 查询字符串获取参数。

我想要做的是不为每个链接写(在 htaccess 上)一行。这种形式的链接非常简单,由-(连字符)符号分隔。

【问题讨论】:

  • 如果我理解正确,您想将mywebsite/param1-val1-param3-val3-param4-val4.html 重写为mywebsite/query.html?param1=val1&param3=val3&param4=val4

标签: .htaccess url parameters seo rewrite


【解决方案1】:

我建议不要依赖复杂的重写规则,而是建议一个简单的重写规则,然后修改您的 Web 应用程序的代码来完成困难的部分。支持这种可变参数并不是一个重写规则自己擅长的事情。

我将使用以下重写规则来拦截任何包含连字符分隔符并以 .html 结尾的 url

RewriteRule ^(.+[\-].+)\.html$ /query.html?params=$1

然后在您的 Web 应用程序中可以从名为 params 的 CGI 参数中获取参数。他们现在看起来像这样param1-val1-param3-val3-param4-val4。然后,您的代码应该在连字符上拆分,然后将参数放入映射中。大多数 Web 框架都支持以某种方式添加或覆盖请求参数。如果是这样,您可以在不对其余代码进行侵入性修改的情况下执行此操作。

【讨论】:

  • 我考虑过...而且我已经做过类似的事情...谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-15
相关资源
最近更新 更多