我找不到将这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。专门用于显示。
谢谢
答案 0 :(得分:0)
尝试
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^displayby=(.*?)$
RewriteRule ^category/kits/$ https://www.example.com/category/kits/? [L,R=301]
(.*?)
应该正则表达式匹配任何值,而不是太贪心