0

私よりも mod-rewrite についてもう少し知っている人への簡単な質問:

次のように順番に書かれたいくつかのルールがあります。

RewriteRule ^(en|fr) index.php?page=home&lang=$1 [L]
RewriteRule ^(en|fr)/home index.php?page=home&lang=$1 [L]
RewriteRule ^(en|fr)/terms index.php?page=terms&lang=$1 [L]

ただし、最初のものは残りをオーバーライドしているようです。

を外してみました[L]が、期待どおりに機能せず、「利用規約」ページが表示されません。

何か案は?

4

1 に答える 1

1

http://www.example.com/enまたは(末尾のスラッシュの有無にかかわらず) 最初の項目にリダイレクトする場合http://www.example.com/fr/は、最初のルールを次のように変更します。

RewriteRule ^(en|fr)/?$ index.php?page=home&lang=$1 [L]

/?末尾のスラッシュの有無にかかわらず$一致し、「URL の末尾に一致する」という意味です (URL が続く場合は一致しません)。

于 2013-01-29T15:28:59.133 に答える