如果尚未创建新图像尺寸,我会尝试提供一些旧版图像。
我的问题是,即使新版本存在,旧版本也会始终提供服务。
示例:
所有文件都在“/ sub / dir / 123 /”中。 “123”可能会根据所提供的页面而改变。
它的工作方式是“foobar.png”服务然后我请求“n1_foobar.png”。 但是当我请求“b2_foobar.png”时,它也会提供“b1_foobar.png”,而不应该。“/ p>
我想我错过了一些旗帜?
这是我的代码:
<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>
谢谢!
解决:
因为我将规则添加到我的virtualhost配置而不是“.htaccess”我错过了“%{DOCUMENT_ROOT}”
这是固定的规则集:
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteRule ^(.*)\/n1_(.*)$ $1/$2 [L]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteRule ^(.*)\/b2_(.*)$ $1/b_$2 [L]
编辑:添加目录info1 编辑:解决了我自己的愚蠢(有没有办法删除令人尴尬的问题?)
答案 0 :(得分:0)
试试这个修改过的版本。
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]