3

.htaccess でパターンに一致する必要があります (可能なパターン、存在しない可能性があります) が、$1 とは異なる値を取得します

URL の例:

http://www.example.com/rest-of-the-url
http://www.example.com/en/rest-of-the-url
http://www.example.com/fr/rest-of-the-url
http://www.example.com/it/rest-of-the-url

en/ fr/ it/パーツが存在する場合と存在しない場合があります

このパターンを使用して、言語をen frという形式で一致させます ...

^([a-z]{2})?other patterns here$

これで問題ありません。言語部分を$1にします。しかし、問題は、言語部分がない場合、$1が残りの URLからreになることです。

このパターンを使えば

^([a-z]{2}\/)?other patterns here$

このパターンを使用すると、言語が存在するかどうかにかかわらず$1に適切に取得できますが、 en/ fr/のような形式で... 末尾に/を付けたくない

2 番目の例のように突き合わせて、最初の例のように値を取得することは可能ですか?

PS: はい、php で末尾の/をきれいにするのは非常に簡単ですが、htaccess でこれを行うことが可能かどうか尋ねていますか?

4

1 に答える 1

2

はい、.htaccess でそれを行うことは非常に可能です。トリックは、を使用して非キャプチャ正規表現グループを使用すること?:です。次の正規表現を使用します。

^(?:([a-z]{2})/)?(.+)$

上記の正規表現を使用すると、末尾のスラッシュ$1があるen場合とない場合があり、残りの URI があります。fr/$2

于 2013-01-07T14:48:31.393 に答える