簡體   English   中英

如何htaccess 301重定向網址中帶有問號的網頁

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM