在找不到请求的文件时,我需要URL重写的帮助来提供默认图像。
我想为3种不同的图片网址格式编写规则:
(1)http://example.com/imgs/user/123-profile.jpg
(2)http://example.com/imgs/user/123-profile-987.jpg
(3)http://example.com/imgs/user/123-678.jpg
如果未找到(1)和(2),那么" http://example.com/imgs/user/default-user.jpg"应该送达;如果找不到(3)那么" http://example.com/imgs/user/default-post.jpg"应该送达。
我在" ... / imgs / user / .htaccess"中尝试了以下代码文件:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)imgs/user/([0-9]*)[-profile]([0-9]*).jpg$ /imgs/user/default-user.jpg [L]
RewriteRule ^(.*)imgs/user/([0-9]*)[-]([0-9]*).jpg$ /imgs/user/default-post.jpg [L]
请告诉我 - 我应该将代码放在.htaccess的#34; /" (文档根目录)或更优选当前路径。
答案 0 :(得分:0)
你的正则表达式看起来不对,两条规则都需要RewriteCond
。
您可以这样使用代码:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*?imgs/user/\d+-profile[^.]*\.jpe?g$ /imgs/user/default-user.jpg [L,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*?imgs/user/\d+-\d+.jpe?g$ /imgs/user/default-post.jpg [L,NC]