2013-02-07 42 views
0

改寫爲特定語言的網址,我需要它改寫URI的一些像這樣的htaccess的規則:通過PHP與htaccess的

http://sub.domain.tld/en/about?a=1&b=2 

這樣:

http://sub.domain.tld/about.php?lang=en&a=1&b=2 

或更爲簡單:

http://sub.domain.tld/about.php?a=1&b=2&lang=en 

沒有區別...

但是用戶應該看到第一個URI不是轉換後的(不應該被重定向)。

+0

你有什麼嘗試到目前爲止?這可能是有用的:http://htaccess.madewithlove.be/ – showdev

+0

@showdev:我不夠熟悉......我只知道一點,所以我不知道這個問題。 –

回答

1

你可以試試這個:

Options +FollowSymlinks 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_URI} ^/([^/]+)/([^/]+) [NC] 
RewriteCond %{QUERY_STRING} ([^/]+) [NC] 
RewriteRule .* %2.php?%3&lang=%1? [L] 

地圖默默

http://sub.domain.tld/LangCode/FileName?key1=val1&key2=val2

帶或不帶斜線。始終顯示在瀏覽器的地址欄中,

要:

http://sub.domain.tld/FileName.php?key1=val1&key2=val2&lang=LangCode

對於永久重定向,更換[L][R=301,L]

+0

謝謝。實際上,我有一個index.php,它查找客戶端的位置和語言,然後將他重定向到如下鏈接:http://domain.com/en/,但實際上PHP應該處理這個並使用所需語言加載模板。所以當http://domain.com/en/about被調用時,PHP將加載關於具有英文內容的頁面。現在我的問題是:「這個htaccess規則是否會產生任何問題?」 –

+0

那是不正常工作...... :( –

0

這裏是的.htaccess代碼:

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/


RewriteRule en/about?a=(.*)&b=(.*)$ about.php?lang=en&a=$1&b=$2