我的網站重定向有問題。前幾天我買了一個.com域名。有兩種語言:意大利語和德語。設定了德語網站example.de和英語版本example.it。
現在我將其更改為.comdomain: example.comwith subfolders:example.com/it/和example.com/it/.
如何將所有鏈接從example.ittoexample.com/it/和example.deto重定向example.com/de/。
...以及以下子檔案夾。
我正在嘗試
Options FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^example\.de$ [NC]
RewriteRule ^(.*)$ https://example.com/de/ [R=301,L]
但沒有成功。
uj5u.com熱心網友回復:
RewriteCond %{HTTP_HOST} ^example\.de$ [NC] RewriteRule ^(.*)$ https://example.com/de/ [R=301,L]
在RewriteRule pattern 中捕獲了 URL-path 后,您在替換字串中缺少相應的反向參考,因此這會將所有內容重定向到主頁,即。example.de/<url>to example.com/de/-<url>丟失了。
但是,您可以使用一條規則處理兩個 TLD。由于 TLD 與子目錄相同。
我假設所有三個域都決議到同一個地方。
在根.htaccess檔案中嘗試以下操作:
RewriteCond %{HTTP_HOST} ^example\.(de|it) [NC]
RewriteRule (.*) https://example.com/%1/$1 [R=301,L]
所述%1反向參考是指從前述捕獲的TLD CondPattern。和$1反向參考包含在捕獲的URL路徑RewriteRule 模式。
RewriteBase此處不需要該指令。
使用 302(臨時)重定向進行測驗以避免快取問題。您需要在測驗前清除瀏覽器快取,因為錯誤的 301(永久)重定向將被快取。
更新#1:這是 Wordpress 的 Polylang 插件。
在這種情況下,此重定向指令必須位于.htaccess檔案的最頂部,在任何現有 WordPress 指令之前,包括在# BEGIN WordPress注釋標記之前。
更新#2:我也有
.cz域和子檔案夾是/cs(ISO 標準)
由于 TLD 和子目錄不同,您需要添加另一條規則來處理此問題。(這可以在上述規則之前或之后,因為沒有沖突。)
例如:
RewriteCond %{HTTP_HOST} ^example\.cz [NC]
RewriteRule (.*) https://example.com/cs/$1 [R=301,L]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/364256.html
上一篇:限制惰性列中的專案
下一篇:Python正則運算式匹配URL
