如果请求的文件不在a / b / c.jpg中,则在/old/a/b/c.jpg中search

我使用的是Apache 2.2,并提供一个网站,它的一些内容移动到不同的目录。 有没有一种方法来对.htacces文件进行某种重写规则,如果请求的文件(无论是php还是jpg或其他)都不存在,要预先指定一个目录名并重试?

例如:

如果请求URL是a / b / c.jpg并且不存在,

尝试在/old/a/b/c.jpg中search。

谢谢!

我认为你可以用-f (检查文件是否存在)。 尝试像这样(未经testing):

 RewriteEngine on RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} ! -f RewriteRule ^(.*)$ /old/$1 [L,R=301] 

编辑:固定错字。

 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !/old/ RewriteRule ^(.*)$ /old/$1 [L,QSA] 

我认为还需要检查目录。 并添加最后一个RewriteCond以避免recursion重写。