2012-06-12 41 views
0

我似乎無法讓我的.htaccess文件將URL正確地路由到我的網站。我有一個多國語言的人可以從希望URL的喜歡進行選擇:.htaccess與PHP隱藏參數和語言選擇

http://www.domain.com/en/ 
http://www.domain.com/en/contact 

但我似乎無法得到的頁面「聯繫人」寫的規則時,爲了獲得「恩」變量工作。

RewriteRule /([^/]+)/([0-9]+)/ index.php?language=$1 

我使用它來獲取語言代碼,但我怎樣才能讓聯繫人頁面工作?

編輯:

顯然,我需要一些QSA選項,但現在的語言得到變量爭奪接觸,與變量EN

RewriteRule ^(.*)$ index.php?language=$1 [QSA,L] 

使用該規則的網站:

http://www.domain.com/en/contact 

退貨:

en/contact 

EDIT2

我試圖做到的是目錄結構:

/ 
/contact 
/about 

有根,這些文件夾,但抓取和忽略/ EN /語言變量。所以我不需要第二個變量爲& page = contact,我需要它路由到目錄文件夾。

回答

1

嘗試結合你的兩個表情,雖然你需要修改第二組 - [0-9]+只會匹配數字,而不是像contact這樣的詞。試試這個:

RewriteRule ^([^/]+)/([^/]+)/?$ index.php?language=$1 [QSA,L] 

QSA選項允許查詢字符串附加到乾淨的URL,也許是這樣的:

http://www.domain.com/en/contact?to=support&subject=Hello 

在回答您的意見,這種表達應該做的訣竅:

RewriteRule ^([^/]*)/([^/]+)/?$ $2/index.php?language=$1 [QSA,L] 

在改寫的規則中,$2包含例如,,而$1則保留en。前者用作目錄,後者用作查詢字符串中的參數。

+0

修正了普遍感謝的數字,但請閱讀我的edit2以進行說明。 – user1452271

+0

您是否試圖讓'/ en/contact'轉到'/contact/index.php?args= here',或者您想從'/ en/contact'獲取'/ contact '在你的重寫? – Bojangles

+0

本質上是這樣的:/ en/contact去/contact/index.php?language=$1 – user1452271