多个和变量参数URL重写

时间:2013-02-12 09:23:43

标签: .htaccess url parameters seo rewrite

我不知道如何重写此类型的网址:

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上)一行。这种形式的链接非常简单,用-(连字符)符号分隔。

1 个答案:

答案 0 :(得分:0)

我建议使用简单的重写规则,然后修改Web应用程序的代码来完成难点,而不是依赖于复杂的重写规则。支持这种变量参数并不是重写规则本身非常擅长的。

我会使用以下重写规则拦截任何包含连字符分隔符并以.html

结尾的网址
RewriteRule ^(.+[\-].+)\.html$ /query.html?params=$1

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