如何在 Apache 中重定向 URL 到另外一台服务器

假设你正在重新设计公司的网站。你已决定将内容和样式(HTML文件、JavaScript 和 CSS)存储在一个服务器上,将文档存储在另一个服务器上 - 这样可能会更稳健。

建议阅读: 5 个提高 Apache Web 服务器性能的提示 。

但是,你希望这个更改对用户是透明的,以便他们仍然能够通过之前的网址访问文档。

在下面的例子中,名为 assets.pdf 的文件已从 192.168.0.100(主机名:web)中的/var/www/html 移动到192.168.0.101(主机名:web2)中的相同位置。

为了让用户在浏览到 192.168.0.100/assets.pdf 时可以访问到此文件,请打开 192.168.0.100 上的 Apache 配置文件并添加以下重写规则(或者也可以将以下规则添加到 .htaccess 文件)中:


  1. RewriteRule "^(/assets\.pdf$)" "http://192.168.0.101$1" [R,L]

其中 $1 占位符,代表与括号中的正则表达式匹配的任何内容。

现在保存更改,不要忘记重新启动 Apache,让我们看看当我们打开 192.168.0.100/assets.pdf,尝试访问 assets.pdf 时会发生什么:

建议阅读: 25 个有用的网站 .htaccess 技巧

在下面我们就可以看到,为 192.168.0.100 上的 assets.pdf 所做的请求实际上是由192.168.0.101处理的。


  1. # tail -n 1 /var/log/apache2/access.log

如何在 Apache 中重定向 URL 到另外一台服务器

检查 Apache 日志

原文发布时间为:2017-01-02

本文来自云栖社区合作伙伴“Linux中国”

上一篇:开发函数计算的正确姿势 —— 本地运行、调试、发布 NAS 函数


下一篇:重定向和文件查找