.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 テストで成功し続けます。明らかに失敗したいのですが、ここで何が間違っていますか?