對于我剛剛重新啟動的網站,我想要一個 htaccess 重定向來捕獲所有不存在的子頁面,/blog/使其僅指向/blog/而不是 404(因此/blog/old-page/只需重定向到/blog/)。然而,重要的是仍然存在的子頁面(例如/blog/new-page/)不會被重定向。如果這可以在根 htaccess 檔案中(而不是在子檔案夾中),那也是最好的。我覺得我已經嘗試了所有方法,但是如果不對每個舊子頁面(有 >100 個)進行重定向,就無法找到解決方案!我希望有人能幫幫忙。
uj5u.com熱心網友回復:
如果您所有的舊頁面 URL 都是這種形式/blog/<old-page>/并且以前映射到物理目錄(從中提供DirectoryIndex檔案),那么您可以使用根.htaccess檔案頂部的 mod_rewrite 執行以下操作:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(blog/)[^/] /$ /$1 [R=301,L]
$1在替換字串中是對RewriteRule 模式中第一個捕獲組的反向參考,即。“博客/”。這只是節省了重復。
旁白:只是重復評論中表達的關注。對于 SEO 和用戶,這可能比解釋缺失頁面的自定義 404 回應更糟糕。無論如何,搜索引擎可能會將此(多對一重定向)視為軟 404,并且當用戶看到與他們期望的內容不同的內容時,他們更有可能“感到困惑”(并反彈)。確實沒有替代“舊”到“新”(一對一)301 重定向的方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/371383.html
標籤:.htaccess
上一篇:如何使用.htaccess清理url以接受或不接受結尾斜杠
下一篇:404功能正常但顯示不正常
