[英]How to htaccess 301 redirect pages with a question mark in the url
我正在嘗試重定向幾個在URL中都有問號的頁面。
我基本上想要重定向:
www.example.com/?attachment_id=456 to www.example.com
還有很多頁面都有不同的ID#。
我在htaccess嘗試了一些沒有運氣的東西..
有任何想法嗎?
這是我試過的:
RewriteCond %{QUERY_STRING} ^attachment_id=[0-9]
RewriteRule ^/$ http://www.example.com/? [L,NC,R=301]
你為什么不能這樣做? 此代碼應重定向此網址,例如www.example.com/?attachment_id=456
RewriteCond %{QUERY_STRING} ^attachment_id=[0-9]+
RewriteRule ^/?$ http://www.example.com/? [L,NC,R=301]
我做了/
optional,以便它可以在Apache配置或.htaccess中使用。 我還保留了?
您在RewriteRule末尾的重定向中刪除重定向上的任何查詢字符串。
你的方法是完美的,只是一些小的修正:
RewriteEngine on
RewriteCond %{QUERY_STRING} attachment_id=[0-9]+
RewriteRule ^/$ http://www.example.com/ [L,R=301]
以上是主機配置的版本。 請注意,必須在更改主機配置后重新啟動http服務器才能使其生效。 要調試,請參閱http服務器錯誤日志文件,尤其是在重新啟動時。
如果您必須依賴.htaccess
樣式文件,那么不幸的是,規則本身的語法必須略有不同:
RewriteEngine on
RewriteCond %{QUERY_STRING} attachment_id=[0-9]+
RewriteRule ^$ http://www.example.com/ [L,R=301]
此類文件必須位於主機文檔根目錄的主文件夾中。 此外,必須通過AllowOverride
選項在主機配置中啟用此類文件的解釋。
通常,您應該始終優先選擇.htaccess
樣式文件上的此類規則的主機配置,但您需要具有管理訪問權限。 .htaccess
樣式文件眾所周知容易出錯,難以調試並且真的減慢了服務器速度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.