0

ばかげた質問

どのように置くことができます:

RewriteRule ^$ index.php?url=$1&%{QUERY_STRING} [QSA]

の中へ :

RewriteRule ^$ index.php?url=*.(jpe?g|png|bmp)&%{QUERY_STRING} [QSA]

URLを書き換えます http://site.com/folder/index.php?url=123.jpg&do=xxx

http://site.com/folder/123.jpg?do=xxx

最初のルールでこれを行うことができますが、gifファイルを防ぐ必要があります

4

1 に答える 1

3

したがって、ブラウザがfolder/123.jpg(または.gif、.png、.bmp)のような画像URLを提供しindex.php?url=123.jpg、既存のクエリ文字列を追加できるようにすることを検討しています。

RewriteEngine On
RewriteRule ^folder/([^.]+)\.(jpg|jpeg|png|bmp)$ folder/index.php?url=$1.$2 [L,QSA]

パターンはに([^.]+)までのすべてをキャプチャし.$1拡張子はにキャプチャされ$2ます。 手動で追加するために何もしなくても[QSA]、既存のクエリ文字列を追加します。do=xxx

これは、キャプチャしないグループを使用してApache2で簡略化できる(?:)ため、すべてがに含まれ$1ます。

RewriteRule ^folder/([^.]+\.(?:jpg|jpeg|png|bmp))$ folder/index.php?url=$1 [L,QSA]

または、条件付きで適用できます。

# If the request ends in .jpg, .bmp, .png...
RewriteCond %{REQUEST_URI} \.(jpe?g|bmp|png)$
RewriteRule ^folder/(.*)$ folder/index.php?url=$1 [L,QSA]
于 2012-12-30T19:14:11.503 に答える