hi all i have this question as my rewrite rule is shown below. But everytime when i am using this code the js file wont work.
RewriteRule ^([^thumb].*\.[jJ].*)$ /images/files/w.php?i=$1
Can anyone tell me where went wrong?
jpg 以外を処理するには、次のように変更できます。
RewriteRule ^([^thumb].*\.(jpe?g|png|gif).*)$ /images/files/w.php?i=$1
これはjpg
、 javascript ファイルと一致しませんがjpeg
、、、png
およびgif
ファイル拡張子をカバーします。
注: , , , , または, で[^thumb].*
始まるファイル名には一致しません(例: , , ,または一致しません) , で始まるファイルだけでなく、 , という単語全体については、否定的な先読みが必要です. ルールが「thumb」で始まるファイルと一致しないようにするには、ルールは次のようになります。t
h
u
m
b
test.jpg
home.jpg
umbrella.jpg
monster.jpg
beach.jpg
thumb...
thumb
(?!regex)
RewriteRule ^((?!thumb).*\.(jpe?g|png|gif).*)$ /images/files/w.php?i=$1
ルールがファイル拡張子の後のテキストを処理する最後の問題は、次のような URL がある可能性があることを意味すると思います。
http://www.example.com/test.png?foo=a&b=baz
あなたのルールは、最終的に次のようになる書き換えを作成します
http://www.example.com/images/files/w.php?i=test.png?a=foo&b=baz
?
クエリ文字列にが 2 つあるため、これは有効な URL ではありません。これを修正するには、次の正規表現を使用します。
RewriteRule ^((?!thumb).*\.(?:jpe?g|png|gif))\??(.*)$ /images/files/w.php?i=$1&$2
この正規表現ルールにより、適切な形式の URL が生成されます
http://www.example.com/images/files/w.php?i=test.png&a=foo&b=baz
明らかにjpegとjsを分離したいので、迅速で汚い「解決策」:
RewriteRule ^([^thumb].*\.[jJ][pP].*)$ /images/files/w.php?i=$1