如何组合这些特定的多个.htaccess重写重定向

时间:2016-03-02 19:01:50

标签: .htaccess redirect mod-rewrite

我找不到将这3行合并为一行的方法,作为url参数的全部捕获" displayby"。

以下3行有效,如果价值是price,date或menu_order,但是有人知道如何编写一个能够捕获所有这三个指令的指令,甚至更多吗? - 在任何变量中?

在网站上,不同的网页都有示例displayby = price,因此之前的示例有效,他们需要重定向到原始网址 - 即

www.example.com/category/kits/?displayby=price

www.example.com/category/kits /

以下是代码:

RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} ^displayby=price$
RewriteRule ^category/kits/$ https://www.example.com/category/kits/? [L,R=301]

RewriteCond %{QUERY_STRING} ^ displayby=date$
RewriteRule ^category/kits/$ https://www.example.com/category/kits/? [L,R=301]

RewriteCond %{QUERY_STRING} ^ displayby=menu_order$
RewriteRule ^category/kits/$ https://www.example.com/category/kits/? [L,R=301]

上述方法完美无缺,但我怎样才能将这些结合到一个可以捕捉所有内容的指令中呢?

我事先感谢您的帮助。

更新

更好的是,如果任何具有该类型的URL参数的URL" displayby = *"可以将其重定向到它附加的URL。专门用于显示。

谢谢

1 个答案:

答案 0 :(得分:0)

尝试

RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} ^displayby=(.*?)$
RewriteRule ^category/kits/$ https://www.example.com/category/kits/? [L,R=301]

(.*?)应该正则表达式匹配任何值,而不是太贪心