仅在文件存在时重定向

时间:2015-04-20 20:27:01

标签: .htaccess redirect

图像存储在:

/image/gallery/cars/

图像路径有点不同(参见汽车背后的ID 4):

/image/gallery/cars-a4/testimage.jpg

我需要一个静默重定向:

/image/gallery/cars/testimage.jpg

/image/gallery/cars-a4/testimage.jpg

文件实际存在于

/image/gallery/cars/

我尝试的没有成功:

RewriteCond %{REQUEST_URI} \.(jpg|jpeg|gif|png)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/image/gallery/cars/%1 -f
RewriteRule ^image/gallery/cars-a4/(.*)$ image/gallery/cars/$1 [L]

规则似乎是正确的,但我错过了一个条件,因为即使文件不存在,重定向仍然有效,并且给出了404。

非常感谢你的帮助和时间。

1 个答案:

答案 0 :(得分:0)

尝试在您的情况下将%1更改为$1

RewriteCond %{REQUEST_URI} \.(jpg|jpeg|gif|png)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/image/gallery/cars/$1 -f
RewriteRule ^image/gallery/cars-a4/(.*)$ image/gallery/cars/$1 [L]