如果找不到文件/图像,则modrewrite到另一台服务器

时间:2011-02-26 23:23:08

标签: apache .htaccess mod-rewrite wampserver

您好我正在处理本地服务的远程站点副本,我不想将所有图像下载到网站上,所以我想我可以想出一个mod_rewrite规则来抓取来自如果找不到远程服务器

我想将导致404的任何图像请求重定向到远程服务器 即是这样的:

^localpath(.*) http://otherhost/localpath$1

这是我的代码

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -f [NC]
    RewriteRule ^/(.*\.(png|gif|jpg|jpeg)) https://www.exmple.com/$1 [NC,P,L]
 </IfModule>  

该页面仍在为远程服务器上的图像提供404,因此此规则无效。

我知道正在处理htaccess,因为正在使用IfModule mod_rewrite.c块中的规则。 (我简化了我的代码示例,但这是IfModule mod_rewrite.c块中的第一个规则)

修改 此代码可用于重定向所有404的

RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteRule   ^(.+) https://www.example.com/$1 [L]

1 个答案:

答案 0 :(得分:2)

!-f中应该有RewriteCond,因此规则适用于的文件。

同样$1将只是文件扩展名,因为该组将首先被解析。我想你想要$2

子文件夹中的文件不以RewriteRule中的/开头,因此您可能也希望从匹配模式中删除它。