2016-05-19 68 views
0

私はmod_rewriteに多くのルールを持っています。今は私たちのウェブサイトに第二言語を追加することにしました。だから、URLに1つがあれば、すべてのルールに接頭辞を追加する方法はありますか?たとえば、私は、次のルールがありますので、私はmod_rewriteのすべてのルールに接頭辞を追加するには?

RewriteRule ^addorder/?$ add_order.php 

に行くべきよりも、次のリンクhttp://test.com/addorder/を持っているとあれば

RewriteRule ^addorder/?$ add_order.php 
RewriteRule ^order/?$ order.php 

を私は

RewriteRule ^addorder/?$ add_order.php?lang=en 
に行くべきよりも、次のリンク http://test.com/en/addorder/を持っている場合

と私は言ったように、たくさんのものがあるので、このようなルールを複製したくないと言いました。

RewriteRule ^addorder/?$ add_order.php 
RewriteRule ^/en/addorder/?$ add_order.php?lang=en 
RewriteRule ^order/?$ order.php 
RewriteRule ^/en/order/?$ order.php?lang=en 

答えて

1
あなたは Lフラグなしで別のルールで最初 lang部品の世話をすることにより、同様のルールの繰り返しを避けることができ

RewriteEngine On 

# handle lang parameter (this rule will be followed by rules below) 
RewriteRule ^([a-z]{2})/(.+)$ $2?lang=$1 [QSA] 

# specific rules to corresponding .php files 
RewriteRule ^addorder/?$ add_order.php [L,NC] 

# generic catch all .php handler for order -> order.php 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.+?)/?$ $1.php [L] 
関連する問題