2016-03-02 23 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