2011-12-28 26 views
0

私はすでにこれに多くの時間を費やしています。 ローカルのzendプロジェクトはhttp://MY_URL.lhにあります。Zend urlはBASE_URL/enをBASE_URLに書き換えますか?lang = en

私はこののhtaccessファイルがあります。

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
# RewriteRule ^.*$ /index.php [NC,L] 
RewriteRule !\.(js|ico|gif|jpg|png|css|wfs|csv)$ index.php 

をそして私はこの書き直したい:私のルールを追加するために、私はすでにしようと試みてきた

htttp://MY_URL.lh/?lang=en 

:このに

htttp://MY_URL.lh/en 

RewriteRule /^([a-z]{2})$ /?lang=$1 [R] 

RewriteRule ^.*$ - [NC,L] 

が、その後何の更なるZendのルーティングは、私は私のルールにフラグ[C]を追加しますが、所望の動作がまだ不足している場合を除き、機能しません。

また、[R = 301]フラグで試しました。

Zend Projectsでhtaccess書き換えルールを作成するのがなぜ難しいのでしょうか。

ありがとうございました!

答えて

0

他のルールは、あなたが右RewriteRule ^.*$ - [NC,L]前にこれを追加した場合RewriteEngine On

RewriteRule ^([a-z]{2})$ /?lang=$1 [R=301,L] 

は、すべての要求の処理を停止言うこのルールは、ある、すべての時間を実行されます直後、すなわち、前にこのルールを追加してみてくださいなぜ何も後に働く。

編集:

あなたはリダイレクトが何をするかであるURLのアドレスを変更したくない場合は、私はそのようにPHPアプリケーション、あなたも、この後の処理ルールを継続することを前提としlang paramをピックアップすることができます。この場合、ルールをそのままにしておきますが、両方のフラグを削除し、他のクエリ文字列パラメータが存在する場合は、QSAフラグを追加してください。

RewriteRule ^([a-z]{2})$ /?lang=$1 [QSA] 
+0

ありがとうございました!それは働いたが、ブラウザのURLバーからアドレスを変更しましたが、変更せずにアドレスを変更する方法はありますか? –

+0

@ SerbuFlorin-Adrian上記の編集を参照してください –

+0

私はそれを行い、URLアドレスバーではURLアドレスが変更されています。 –