2016-03-02 24 views
0

我无法找到一种方法将这3行合并为一行,作为url参数“displayby”的全部抓取。如何合并这些特定的多个.htaccess重写重定向

如果价值是价格,日期或menu_order,但是有人知道如何编写一个能够捕获所有三个或更多的指令的指令,那么下面的三行工作? - 在任何变量?

在网站的不同页面具有例如displayby =价格,这样的例子以前的工作,他们需要重定向到原始URL - 即

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“displayby = *”可以将其重定向到URL它连接到。特别为了displayby。

谢谢

回答

0

尝试

RewriteEngine On 
RewriteBase/

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

(.*?)应的正则表达式匹配这里的任何值,而不过于贪婪

+0

JKirchartz大家好,感谢您的答复。我对延迟回复表示歉意。我用你的代码替换了我的代码块,但它不起作用。我应该只添加该行还是添加一个RewriteCond? – crc

+0

crc,保持你的第一个RewriteRule&Cond,删除剩下的部分,并用它代替你的第一个RewriteCond – JKirchartz

+0

再次JKirchartz;如果我保留那个RewriteRule,那么只需要清楚一点,它只会适用于正确的工具包类别?我想知道如果displayby连接到任何URL,代码将会是什么。如果有误解,我表示歉意。再次感谢你。 – crc