0

.htaccess ルールで文字列パターンをテストしようとしています。

RewriteCond %{REQUEST_URI} ^/[a-z]{2}(-[a-z]{2})?/.+$ [NC]

成功した場合は、PHP スクリプト用に次のように動的に書き換える必要があります。

RewriteRule ^/([a-z]{2}(-[a-z]{2})?)/([a-z0-9-]{1,128})[\.html]? /index.php?lng=$1&tpl=$2 [QSA,L,NC]

たとえば、これらの文字列は成功し、RewriteRule を実行する必要があります。

http://abc.com/ab
http://abc.com/ab-cd
http://abc.com/ab/some-page
http://abc.com/ab-cd/some-page
http://abc.com/ab-cd/some-page.html

これらの文字列は失敗し、RewriteRule を実行しません。

http://abc.com/1
http://abc.com/a
http://abc.com/12
http://abc.com/ab_
http://abc.com/ab-cd
http://abc.com/ab-cd/

上記の失敗の場合、それらは単純に続行され、サーバーの実際の内容に応じて成功または失敗します。

問題

次のようなコードを含まないファイルをサーバーに配置しました。

abc.com/asdf-asdf/test.html

RewriteCond テストで成功し続けます。明らかに失敗したいのですが、ここで何が間違っていますか?

4

0 に答える 0