模式匹配301,保留一个查询字符串参数

时间:2013-05-20 15:34:49

标签: .htaccess mod-rewrite http-status-code-301

一直在挠我的头。我有一个我需要重定向的URL格式,只需要一部分查询字符串。示例网址:

  ?

瓦片形状=安培;颜色=安培;光洁度=安培;材料=安培;价格=安培;○= 60安培;瓦= 50-双罗马古董红色-03-粒状

我需要的就是tile参数的值(50-double-roman-antique-red-03-granular)所以我可以将它重定向到:

  

瓦片/细节/ 50双罗马古董红色-03-粒状

有关重写规则的任何建议吗?

由于

2 个答案:

答案 0 :(得分:0)

这适用于我的包装盒。我们在重写字符串之后包含?以防止行为或QSA或查询字符串追加,如果没有传递查询字符串,则这是默认行为。如果您忘记了?,那么它会创建一个循环。

RewriteCond %{QUERY_STRING} tile=([^&]+)&?.*$
RewriteRule (.*) /tiles/detail/%1? [L]

答案 1 :(得分:0)

这个偏离主题的答案给了我正在寻找的东西:

RewriteCond %{QUERY_STRING} &tile=([0-9a-zA-Z-]+)
RewriteCond %{REQUEST_URI} !tiles/detail
RewriteRule tiles /tiles/detail/%1? [R=301]