Apache 修改:重写%{请求文件名}-f";永远正确
如果没有创建新的图像大小,我会尝试为一些遗留图像提供服务 我的问题是,即使出现了新版本,遗留版本也会得到服务 例如:Apache 修改:重写%{请求文件名}-f";永远正确,apache,mod-rewrite,Apache,Mod Rewrite,如果没有创建新的图像大小,我会尝试为一些遗留图像提供服务 我的问题是,即使出现了新版本,遗留版本也会得到服务 例如: foobar.png=>存在 n1_foobar.png=>不存在 b_foobar.png=>存在 b2_foobar.png=>存在 所有文件都在“/sub/dir/123/”中。“123”可以根据所服务的页面进行更改 这意味着“foobar.png”被提供,然后我请求“n1_foobar.png”。 但当我请求“b2_foobar.png”时,它也提供“b1_fooba
- foobar.png=>存在
- n1_foobar.png=>不存在
- b_foobar.png=>存在
- b2_foobar.png=>存在
<IfModule mod_rewrite.c>
# Options -MultiViews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)\/n1_(.*)$ $1/$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)\/b2_(.*)$ $1/b_$2 [L]
</IfModule>
编辑:添加了目录信息1
编辑:解决了我自己的愚蠢问题(有没有办法删除令人尴尬的问题?试试这个修改版
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([^/]+)/n1_(.+)$ /$1/$2 [L,NC]
RewriteRule ^([^/]+)/b2_(.+)$ /$1/b_$2 [L,NC]
此外,如果我将文件移动到根目录,您的解决方案将无法工作。“n1_foobar.jpg”在丢失时不由“foobar.jpg”提供。您的图像的完整URL到底是什么?”/a/1452542/b2_foobar.jpg“、“/a/1452542/b_foobar.jpg”和“/a/1452542/foobar.jpg”。“不在场”是“/a/1452542/n1_foobar.jpg”,这正是我试图重写的内容。
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([^/]+)/n1_(.+)$ /$1/$2 [L,NC]
RewriteRule ^([^/]+)/b2_(.+)$ /$1/b_$2 [L,NC]