2016-06-09 113 views
2

我想從網址中刪除某些url參數。這些參數對正在顯示的內容沒有影響,但谷歌有一堆索引。htaccess從url中刪除參數

我想將它們重定向到基礎url。
這裏是例子。

www.myexamplesite.com/?start=10
要:www.myexamplesite.com

www.myexamplesite.com/folder1/?start=10
要:www.myexamplesite.com/folder1

www.myexamplesite.com/folder2/?start=10
要:www.myexamplesite.com/folder2

其實我也不需要有任何網址參數,所以我想知道是否有可以捕捉和重定向的方法l來自url的其他可能參數,並且只允許一些我將在htaccess中指定的選定參數。

實例:
www.myexamplesite.com/?param1=10
到:www.myexamplesite.com

www.myexamplesite.com/?param1=10&param2=20
到:www.myexamplesite.com

www.myexamplesite.com/folder1/?param1=10
到:www.myexamplesite.com/folder1

www.myexamplesite.com/folder1/?param1=10&param2=20
要:www.myexamplesite.com/folder1

但是這應該是我選擇了一個參數3:

www.myexamplesite.com/folder1/?param3=10 離開不變:www.myexamplesite.com/folder1/?param3=10

更新
我其實已經實施的解決方案,但我的主問題是,它總是重定向到主頁,而不是相應的REQUEST_URI ...

H ERE是我:

RewriteCond %{QUERY_STRING} . 
RewriteCond %{QUERY_STRING} !^item= 
RewriteCond %{REQUEST_URI} !^/manage 
RewriteRule .? http://www.myexamplesite.com%{REQUEST_URI}? [R=301,L] 
+0

您是否嘗試過尋找解決方案?你做過任何研究嗎? – hjpotter92

+0

@ hjpotter92是的,其實我是這麼做的,對不起,我在寫q出去時沒有寫更多。我已經實現了一個解決方案,但是我的主要問題是它不能在重定向後保持REQUEST_URI。一切都重定向到主頁。我正在用我目前的解決方案更新我的問題。 – tafvita

回答

3

您可以使用此規則剝離時param3=中發現,除了所有的查詢字符串。

RewriteEngine On 

RewriteCond %{QUERY_STRING} . 
RewriteCond %{QUERY_STRING} !(?:^|&)param3= [NC] 
RewriteRule^%{REQUEST_URI}? [R=301,L,NE] 
+0

感謝您的答案......但像www.example.com/folder/?param1=3這樣的網址將重定向到www.example.com而不是www.example.com/folder ...也許這是另一回事我的htaccess導致這一點,雖然。我明天徹底檢查一下。不幸的是,我不允許你的答案投票。 – tafvita

+0

您在測試之前清除了瀏覽器緩存嗎?確保此規則是您測試時.htaccess中的唯一規則。 – anubhava

+1

再次感謝 - 我不得不改變一些規則出現在我的htaccess的順序。現在你的規則很好。好工作 - 謝謝! – tafvita