2012-03-26 12 views
0

が、私はそれをやっている方法です:htaccessの条件

RewriteCond %{QUERY_STRING} !locale 
RewriteRule ^acceuil$ home.php?locale=fr [NC,L] 
... (More rewrite rules) 

基本的に私は/acceuilがに行きたいですhome.php?locale=fr何とか場合は、リンクが、私はそれがhome.php?locale=en

に相当する /homeに代わりに行くしたいと思い、この /acceuil?locale=enようにしたことを除いて

(完璧な作業)条件は各ルールの前に貼り付けてコピーする必要がある場合は

if(isset($locale)) { 
     go to home.php?locale=$locale 
} 
else{ 
     go to home.php?locale=fr 
} 

はまた、私は疑問に思って:

書き換えるために、任意のチャンスは次のように「/acceuil」を言うことができますか?

これが可能である場合は私に知らせてください、そしてどのように私はそれが軌道に乗ることができ、あなたはhtaccessファイルの書き換えのためのいくつかの有用な参照を持っている場合:)

を共有してくださいおかげ

+0

フランス語の場合は、** Accueil **、*ではない* Acceuil :) –

答えて

1

ここで動作するはずの一般的なルールがあります、それはGETで変数がlocale(ないlocaleeeもないllllocale)であることを確認します:

RewriteCond %{QUERY_STRING} (^|&)locale=([a-zA-A]+)(&|$) 
RewriteRule ^acceuil$ home.php?locale=%1 [L,NC,QSA] 

# if locale = en ... 
RewriteCond %{QUERY_STRING} (^|&)locale=en(&|$) 
# ... and it goes to home.php then go back to /home: 
RewriteRule ^home.php$ /home [L,NC,QSA] 

注:それはフランス人だならば、それはAcceuilAccueilではありません:)

+0

私はあなたの助けと誤植をキャッチするためにthxに感謝します:) –

+0

歓迎、私の喜び** ':)' ** –

1
RewriteCond  %{QUERY_STRING} !locale 
RewriteRule  ^acceuil$    home.php?locale=fr [L,NC] 
RewriteCond  %{QUERY_STRING} locale=([a-zA-Z]{2}) 

RewriteRule  ^acceuil$    home.php?locale=%1 [L,NC] 

編集:
最初の条件は、クエリ文字列にlocalの存在をチェックするだけです。そうでない場合は、URLをhome.php?locale=frに書き換え、locale=がある場合は、その後ろの文字は2文字で、home.php?locale=%1となりますので、の場合はhome.php?locale=frを意味します。そして、acceuil?locale=enは、home.php?locale=enを意味します。

は二つの条件と2つの書き換えルールがあります:-D

+0

クイック返信ありがとう!この論理によって、私は条件が1つのルールにのみ適用されることを理解しましたか? –

+0

読み込んだ部分 – undone

+0

ありがとう!最高の答えを選ぶのが本当に難しい –

関連する問題