2016-02-04 76 views
0

我相信我的問題很獨特。我環顧四周,找不到答案。是否有301重定向指令可以捕獲所有的URL參數?

有網站管理員工具中的幾個報告顯示的網址,如果這種性質:

website.com/shop/?orderby=date 

有代碼一個.htaccess線(S),將上面的URL重定向到

website.com/shop/ 

和重定向將是301?

謝謝

+0

根據您的標籤我會假設你USI ng Apache HTTPD。那是對的嗎? – Sean

+0

關於這個問題,我看不出什麼「獨特的」。 //如果你想檢查查詢字符串的內容,那麼你必須使用'RewriteCond'來完成。 – CBroe

+0

_「,如果它在任何子頁面上,它將重定向到它使用的URL」_ - 「的主子頁面,這一點需要澄清。你認爲什麼是「子頁面」,什麼是「主要子頁面」?你至少可以做的是展示一些從 - >到示例URL。 – CBroe

回答

1

這似乎是比較直接的。如果你只是想在查詢字符串搜索出「排序依據= VAL」,如果找到,重定向到基URI,試試這個:

RewriteBase/
RewriteCond %{QUERY_STRING} orderby= 
RewriteRule ^(.*)$ $1? [R=301] 

這裏假設你已經啓用重寫模塊中的主配置:

的LoadModule rewrite_module模塊/ mod_rewrite.so

更新:例2:

RewriteBase/
RewriteCond %{QUERY_STRING} orderby= 
RewriteRule ^shop/ products? [R=301] 
+0

嗨布蘭登,事實上這比我想象的要複雜得多。是否有編輯你的代碼,我可以一次只做一個代碼?例如,我們找到了以下許多網址(不存在):/ shop /?orderby = date ---您能否顯示我的一段代碼,這些代碼只能處理該網址並將其重定向到「任何網頁」我喜歡?在這種情況下,它將被重定向(301)到website.com/products/ ---感謝布蘭登! – njames

+0

是的,您可以修改RewriteRule的模式以更具辨別性,因此它只對特定的URI匹配起作用。/shop /並修改替代以重定向到任何您想要的URI。我已經用第二個例子更新了我的答案。有用的文檔:[RewriteRule](http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriterule)和[RewriteCond](http://httpd.apache.org/docs/2.2/mod/ mod_rewrite.html#rewritecond)和[RegEx](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Using_special_characters) –

+0

@njames第二個示例對您有幫助嗎? –