愚蠢的问题
怎么放:
RewriteRule ^$ index.php?url=$1&%{QUERY_STRING} [QSA]
进入:
RewriteRule ^$ index.php?url=*.(jpe?g|png|bmp)&%{QUERY_STRING} [QSA]
重写网址
http://site.com/folder/index.php?url=123.jpg&do=xxx
到
http://site.com/folder/123.jpg?do=xxx
第一条规则可以做到这一点,但我需要阻止gif文件
答案 0 :(得分:2)
因此,您希望允许浏览器向folder/123.jpg
提供index.php?url=123.jpg
(或.gif,.png,.bmp)等图片网址,并附加现有的查询字符串:
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]