我想將所有子頁面重定向到主頁。我嘗試了代碼:
RewriteEngine On
RewriteRule . http://www.example.com [r=301,nc,l]
所有子頁面都被重定向,除了那些包含問號的子頁面,例如,http://www.example.com/?123不被重定向。如何修改我的代碼以重定向這些 URL?
uj5u.com熱心網友回復:
您需要使用查詢字串重定向任何非空 URL 路徑或主頁(空 URL 路徑)。您還應該洗掉查詢字串作為重定向的一部分(您的規則當前保留初始請求中的查詢字串)。
例如,請嘗試以下操作:
# Redirect everything to the homepage (same domain)
RewriteCond %{REQUEST_URI} ^/. [OR]
RewriteCond %{QUERY_STRING} .
RewriteRule ^ http://www.example.com/ [QSD,R=301,L]
上述宣告...對于所有 URL 路徑,其中 URL 路徑包含至少一個字符(在初始斜杠之后)或包含查詢字串,然后重定向到根。
該QSD標志會丟棄請求中的原始查詢字串。
規則上的NC標志是多余的,因為無論如何您都沒有匹配特定的字母。
旁白:但是,我會質疑這樣做的動機。搜索引擎 (Google) 將把大量重定向到主頁視為軟 404,因此這樣做沒有 SEO 好處,如果用戶關注的是以前存在的鏈接,這通常會讓用戶感到困惑。在這種情況下,有意義的 404 回應通常是首選選項。
更新:
如果我也想使用此代碼重定向到其他域,我應該更改或添加到重定向主頁嗎?
假設另一個域也指向不同的服務器,那么您只需要洗掉上述規則中的兩個條件即可重定向所有內容并洗掉查詢字串。
例如:
# Redirect everything to the homepage on an external domain
RewriteRule ^ http://www.example.com/ [QSD,R=301,L]
uj5u.com熱心網友回復:
試試這個,它適用于我的 ERP 系統。
RewriteRule ^(.*)$ http://www.example.com/ [L,R=301]
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/480698.html
