2011-06-29 144 views
0

大家好,感謝您的任何提示/信息將爲你提供
我們有一個靜態的網站有大約100頁(HTML),英文
現在我們升級這是部分動態和3種語言
我們認爲做的是什麼:
英語版本
/language/path/to/page.html

塔實際內容是在兩種情況下由單一的PHP文件送達,像:在其他版本/path/to/page.html
page.php?lang=french

一般的重寫規則是這樣的:htaccess的多語言網站

RewriteRule ^/path/to/page.html$ page.php?lang=$1 [NC,L] 

我的問題是我不知道如何修改基於$lang此規則。
所以,如果$lang=english OR if $lang='',規則將被tanslated到/path/to/page.html

在所有其他激射規則將$lang/path/to/page.html


可以通過這個htaccess的實現呢?

回答

1

首先,它可能是最好有一組內容,每個的langauge不重複的內容(如果我理解正確。

我們對我們的網站(工作)多國語言,我們存儲在數據庫轉換,然後加載相應的對於選定的語言

但是,如果這種方式很適合你,那麼你可以忽略這個:)

我做了這樣的事情,這可能有助於:

# Force English 
# for http://www.website.com/ 
RewriteRule ^$ page.php?lang=EN 

# English 
# for http://www.website.com/EN/ 
RewriteRule ^EN/?$ page.php?lang=EN 

# Other Languages 
# for http://www.website.com/DE/ etc 
RewriteRule ^(DE|FR|ES)/?$ $1/path/to/page.php?lang=$1 
+0

這些規則是否正確? 基於前2條規則,您沒有多次重寫嗎? – andrew

+0

是的,這是正確的。第一條規則是當一種語言沒有通過時,所以它默認爲英文,第二種語言通過。 – Tomgrohl