簡體   English   中英

具有.htaccess和友好網址的網站翻譯

[英]website translation with .htaccess and friendly url

我有一個名為website.com/example/index.php的網站,其根目錄內有一個名為example的目錄(root / example / index.php)。 到目前為止,我有:

Options +FollowSymLinks -MultiViews
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/example/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /example/$1.php [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]

現在,我想用西班牙語將翻譯添加到我的網站中。 在index.php中,我通過href =“?lang = zh_CN”呼叫英文版本,並通過href =“?lang = es_ES”西班牙語,因此在瀏覽器網址中輸入http://website.com/example/?lang = es_ES(切換為西班牙語時)。 我的問題是如何顯示網址:website.com/es/example/index或沒有物理目錄en或es的任何頁面。

將您的第一個RewriteRule更改為:

RewriteRule ^(en|es)/(.+?)/?$ /example/$2.php?lang=$1 [L,QSA]

這是假設您所有的URL中都包含en或es,並且/ example /中的所有腳本都可以接受GET變量lang。 $ 1表示語言,QSA表示附加查詢字符串,因此,如果用戶訪問/ example / somepage?somevar = 1,somevar仍將傳遞給$ 2。

請注意,第二個RewriteCond沒有意義,因為尚未定義$ 1。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM