我想使用mod_rewrite来处理我的头像图片的请求。 我有一个包含所有.png
图片的文件夹,并且该文件以该帐户的用户名命名。mod_rewrite,头像设置
所以我想请求/avatar/Juddling
,显示图像,/images/avatars/Juddling.png
但如果该文件不存在,我想它显示一个default.png
图像。
Options +FollowSymLinks
Options +Indexes
Options -MultiViews
RewriteEngine On
RewriteRule ^avatar/(.*)$ images/avatars/$1.png [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^avatar/(.*)$ images/avatars/default.png [NC,L]
阿帕奇似乎只待处理的第一RewriteRule
,因为我得到一个404,如果头像是不存在的,而不是看到默认的图像。
这对我来说不起作用,我认为这是因为在第一种情况下,你使用的是反向链接$ 1,但是apache并没有被告知URL的哪一部分被使用,所以它是在寻找文件,/images/avatars/avatar/Juddling.png? ,因为所有请求都会作为默认图像显示出来。 – Juddling 2009-07-14 18:36:10
`$ 1`将保留相应的`RewriteRule`模式的匹配(有关技术细节,请参阅http://httpd.apache.org/docs/2.2/rewrite/rewrite_tech.html)。但是,您可能需要为第一个表达式添加一个`/`:`%{DOCUMENT_ROOT}/images/avatars/$ 1.png`。如果这不起作用,请使用mod_rewrite的日志记录功能(请参阅http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriteloglevel)以查看该表达式评估的值。 – Gumbo 2009-07-14 18:50:29