【问题标题】:modrewrite to another server if file/image is not found如果找不到文件/图像,则 modrewrite 到另一台服务器
【发布时间】:2011-07-05 01:31:39
【问题描述】:

您好,我正在处理远程站点的本地服务副本,我不想下载与该站点相关的所有图像,所以我想我可以想出一个 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]

【问题讨论】:

    标签: apache .htaccess mod-rewrite wampserver


    【解决方案1】:

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

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2016-10-18
    • 2019-01-24
    • 1970-01-01
    相关资源
    最近更新 更多