我必須創建一個多語言網站。為了實現這個目標,我想將代表一種語言的子網域指向我的virtualhost
或htaccess
配置中域的第一個 URL 參數(GET 變數)。
方案如下:
example.com => /
([a-z-]+).example.com => /?lang=$1
([a-z-]+).example.com/directory1/ => /directory1/?lang=$1
([a-z-]+).example.com/directory1/page.html => /directory1/page.html?lang=$1
等等...無論目錄和頁面的數量有多少。
所以,根據這個方案:
en-en.example.com matches /?lang=en-en
en-en.example.com/directory1/ matches /directory1/?lang=en-en
en-en.example.com/directory1/page.html matches /directory1/page.html?lang=en-en
等等...無論目錄和頁面的數量有多少。
那麼我該如何在我的 apache 配置中做到這一點呢?
答案1
我認為 .htaccess 或虛擬主機設定檔中類似的內容就可以解決問題;這僅匹配兩個字母的子網域 - 相應地調整第一個正規表示式...例如 ([az-]+)
RewriteEngine On
RewriteCond %{HTTP_HOST} "^([a-z]{2})\.example\.com$"
RewriteRule "^(.*)$" http://example.com$1?lang=%1