努力想出一個.htaccess規則來從中刪除參數。 基本上我想htaccess規則刪除參數
改寫到
http://www.example.com/page/competition.html
所以,從一/page/compeition.html任何被改寫。 感謝您的幫助。在此先感謝
努力想出一個.htaccess規則來從中刪除參數。 基本上我想htaccess規則刪除參數
改寫到
http://www.example.com/page/competition.html
所以,從一/page/compeition.html任何被改寫。 感謝您的幫助。在此先感謝
你想只爲特定頁面?或更多作爲一般方法?
RewriteRule ^page/competition.html?(.+)$ /page/competition.html [L,NC]
這將是實現它的最簡單的形式,但只適用於確切的文件名。對於更一般的方法,您需要添加更多的佔位符。
不正確 - 'mod_rewrite'不會將查詢字符串公開給規則。此外,您的規則是倒退 - OP希望查詢字符串基本上被隱藏,但仍然是請求的一部分。我可能會誤解,但在問題中使用* rewrite *這個詞指向那個方向。 –
作爲一般規則,你應該能夠使用以下命令:
RewriteRule ^(.*)$ $1? [END,QSA]
在此規則的關鍵是將不出現在輸出URL尾隨問號。
RewriteRule ^(。*)$ $ 1? [結束,QSA這個規則被滿足,則新URL http://www.example.com/page/competition.html
嘗試一下下面的例子:
在你的問題,你的國家,你想長期URI 將改寫爲較短的一個。不幸的是,這不是很清楚。假設你想簡單地刪除使用重定向查詢字符串,可以使用以下命令:
RewriteCond %{QUERY_STRING} ^utm_medium=email&utm_campaign=([^&]+)&utm_source=([^&]+)&utm_term=([^&]+)$
RewriteRule^%{REQUEST_URI}? [R=302,L]
這是一個廣義的條件和規則,將檢查查詢字符串中的任何utm
信息。如果存在,則刪除查詢字符串。
如果你希望只爲page/competition.html
做到這一點,那麼改變規則是:
RewriteRule ^(page/competition\.html)$ /$1? [R=302,L]
如果你想簡單地刪除任何查詢字符串形成以page/competition.html
請求的一部分,那麼你可以使用這個代替上述:
RewriteCond %{QUERY_STRING} !^$
RewriteRule ^(page/competition\.html)$ /$1? [R=302,L]
這基本上告訴Apache來檢查查詢字符串不爲空,並且如果不是的話,完全剝離出來。
要使重定向永久,請將302
更改爲301
。
請分享您的嘗試。 –