Dot-Htaccess

將不同語言的網址重定向到 htaccess 中的英文對應網址

  • June 12, 2020

我正在嘗試將以/?lang=da,結尾/?lang=de的語言 URL 重定向/?lang=nl到相同的 URL 但以/?lang=en.

所以

www.example.com/accommodation/hotel-room-1/?lang=da

應該導致

www.example.com/accommodation/hotel-room-1/?lang=en

等等

有沒有辦法為此使用萬用字元?

如果這些語言版本不再存在,那麼您可以在根.htaccess文件中使用 mod_rewrite 實現重定向。

例如,在.htaccess文件頂部附近嘗試以下操作:

RewriteEngine On

RewriteCond %{QUERY_STRING} ^lang=(da|de|nl)$
RewriteRule (.*) /$1?lang=en [R=301,L]

此 301 重定向/<anything>?lang=da(或denl)到相同的 URL 路徑,但帶有lang=en. 與您的範例一樣,/accommodation/hotel-room-1/?lang=da重定向到/accommodation/hotel-room-1/?lang=en.

反向引用從請求的 URL中$1擷取 URL 路徑。

請注意,最好先使用 302(臨時)重定向進行測試,以避免記憶體任何錯誤的重定向,並且只有在您確定它按預期工作時才更改為 301。

引用自:https://serverfault.com/questions/1021160