[英]HTACCESS : Redirect (301) thousands of Url's containing directories to simple url's
我需要使用 .HTACCESS 方法將 Wordpress 包含文件夾/子文件夾的文章的大量 URL 已經生成(並且已經編入索引...)轉換為沒有任何文件夾/子文件夾名稱的簡單 URL 。
例子:
從https://www.website.com/Animals/Cats/mycat.html到https://www.website.com/mycat.html
從https://www.website.com/Animals/Dogs/mydog.html到https://www.website.com/mydog.html
從https://www.website.com/Countries/France/bordeaux.html到https://www.website.com/bordeaux.html
ETC...
我已經在 Wordpress 配置中更改了永久鏈接選項。 因此,現在生成的 URL 格式正確(例如: https://www.website.com/bordeaux.html ),沒有任何文件夾名稱。
我的問題是將所有舊網址重定向到這種新格式以防止 404 並保持排名。
如果試圖在 my.htacess 中添加這一行:
RewriteRule ^/(.*)\.html$ /$1 [R=301,L,NC]
我 egally 嘗試了RedirectMatch 301 (.*)\.html$
方法,它是一樣的。 我快要瘋了。
我做錯了什么,你能幫我嗎?
謝謝
只需匹配 url 的最后一部分並將其傳遞給重定向:
RewriteRule /([^/]+)\.html$ /$1.html [R=301,L,NC]
它將匹配任意數量的目錄,例如:
RewriteRule ^/(.*)\.html$ /$1 [R=301,L,NC]
RewriteRule
模式匹配的 URL 路徑從不以斜杠開頭。 但是當有更多“文件夾”時,您可以使用它來僅匹配最后一個路徑段。 並且目標 URL 也需要以.html
(根據您的示例)。
所以,這可以寫在一個指令中:
RewriteRule /([^/]+\.html)$ /$1 [R=301,L]
這處理任何級別的嵌套“文件夾”。 但不匹配文檔根目錄中的/foo.html
(目標 URL)(由於正則表達式上的斜杠前綴),因此沒有重定向循環。
(不需要任何前置條件。)
這里的$1
反向引用包括.html
后綴。
將舊 URL 重定向到沒有文件夾名稱的新 URL。 您可以使用以下代碼重定向包含 .html 的 URL:
RewriteEngine On
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+).html$ /$5.html [L,R=301]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.