0

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?

4

2 に答える 2

2

jpg 以外を処理するには、次のように変更できます。

RewriteRule ^([^thumb].*\.(jpe?g|png|gif).*)$ /images/files/w.php?i=$1

これはjpg、 javascript ファイルと一致しませんがjpeg、、、pngおよびgifファイル拡張子をカバーします。

注: , , , , または, で[^thumb].*始まるファイル名には一致しません(例: , , ,または一致しません) , で始まるファイルだけでなく、 , という単語全体については、否定的な先読みが必要です. ルールが「thumb」で始まるファイルと一致しないようにするには、ルールは次のようになります。thumbtest.jpghome.jpgumbrella.jpgmonster.jpgbeach.jpgthumb...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

于 2012-10-24T16:16:07.040 に答える
2

明らかにjpegとjsを分離したいので、迅速で汚い「解決策」:

RewriteRule ^([^thumb].*\.[jJ][pP].*)$ /images/files/w.php?i=$1
于 2012-10-24T16:06:41.207 に答える