regex
他の文字列で始まらない文字列にのみ一致する a を使用しようとしています。私が知る限り、スタック オーバーフローに関する他の質問から、否定的な先読みアサーションを使用する必要があります。しかし、何らかの理由でそれが機能していないようです。次の 3 つの文字列を考えてみましょう。
/match.jpg
match.png
excludedpath/no-match.gif
最後の文字列がexcludepath/
. 私が試したことは次のとおりです。
(?!excludedpath\/)(.*)\.(gif|jpg|png)$
この正規表現パターンを Apache の書き換えルールで使用したいと考えています。基本的に、次の形式でない限り、すべての画像を(これらの3つの拡張子で)ロードしたいだけですhttp://example.com/excludedpath/some-image.jpg
:
RewriteCond %{REQUEST_FILENAME} (?!excludedpath\/)(.*)\.(gif|jpg|png)$
RewriteRule ^(.*)$ $1 [L]
RewriteCond "/my/path/to/application/%{REQUEST_URI}" !-f
RewriteRule ^(.*)$ /index.php/$1 [L]
なぜ3つの文字列すべてにまだ一致するのか、誰でも教えてくれます:このリンクとそれを修正する方法?