あなたの入力に基づいて、次のようにURL書き換え構成を使用することをお勧めします。
RewriteEngine on
RewriteRule ^([a-zA-Z-_]+)$ $1.php?lang=en [R]
RewriteRule ^([a-z]+)/([a-zA-Z-_]+)$ $2.php?lang=$1 [R]
最初のルールは、/abc
(言語が指定されていない)のようなURLをに書き換え、/abc.php?lang=en
英語(en
)をデフォルト言語として設定します。2番目のルールは、(言語が/xy/abc
指定されている)のようなURLをに書き換えます(言語はリクエストURL/abc.php?lang=xy
の最初の部分から取得されます)
例:
http://mydomain.com/en/references => http://mydomain.com/references.php?lang=en
(RewriteRule#2)
http://mydomain.com/ro/referinte => http://mydomain.com/referinte.php?lang=ro
(RewriteRule#2)
http://mydomain.com/references => http://mydomain.com/references.php?lang=en
(RewriteRule#1)
http://mydomain.com/referinte => http://mydomain.com/referinte.php?lang=en
(RewriteRule#1)
PHP
ルールは特定のファイルのリクエスト、つまり次のようなリクエストを無視することに注意してください。http://mydomain.com/ro/referinte.php
またはhttp://mydomain.com/referinte.php
、書き換えられません。また、サーバーの応答は、存在しないページでも現在と同じである必要があります。つまり/referinte.php
、存在しないと仮定すると、次のような要求が発生します。 http://mydomain.com/en/referinte
(新しい書き換え)および http://mydomain.com/referinte?lang=en
(現在の書き換え)404が返されると思います。
それがお役に立てば幸いです。