我正在使用 apache 2.2,它为一个网站提供服务,其中的部分内容已移动到不同的目录。如果请求的文件(无论是 php 还是 jpg 或其他文件)不存在,有没有办法对 .htacces 文件进行某种重写规则,在前面添加一个目录名并再试一次?
例如:
如果请求 URL 为 a/b/c.jpg 且不存在,
尝试在 /old/a/b/c.jpg 中搜索它。
谢谢!
答案1
我认为你可以用(检查文件是否存在)来做到这-f
一点。尝试以下方法(未经测试):
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} ! -f
RewriteRule ^(.*)$ /old/$1 [L,R=301]
編輯:修正了拼写错误。
答案2
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !/old/
RewriteRule ^(.*)$ /old/$1 [L,QSA]
我认为还需要检查目录。并添加最后的RewriteCond以避免递归重写。