0

.htaccessファイルのルールを作成しようとしています。このルールは、最初のパスセグメントでの一致をチェックし、最後のセグメント!= enをチェックしてから、最後のセグメントを置き換えます。

例えば

変換

/ zh / something / somethingelse / de /

の中へ

/ zh / something / somethingelse / en /

最後のセグメントがすでに/en/である場合、ルールを適用する必要はありません。最初と最後の間に多かれ少なかれパスセグメントが存在する可能性があります。

私は今これを試しています

RewriteRule /zh.*/([^/]+)/(?!^en$).*$ /zh/$1/en/   [R=301,L] 

しかし、それは私に与えています

/ zh / en / en /

結果として

4

1 に答える 1

0

おそらく正規表現を変更し、条件を追加してループを防止し/en/ます:

RewriteCond %{REQUEST_URI} !/en/?$
RewriteRule ^/zh[^\/]*/(.*)/[a-z]{2}/?$ /zh/$1/en/ [R=301,L]

注: これが .htaccess ファイルで使用されていて、Apache 2.0 以降を使用している場合は、先頭のスラッシュを^/zhtoから削除する必要があります^zh

于 2012-07-04T20:40:29.007 に答える