如何在 Apache 中重定向 URL 到另外一台服务器
如我们前面两篇文章( 使用 mod_rewrite 执行内部重定向 和 基于浏览器来显示自定义内容 )中提到的,在本文中,我们将解释如何在 Apache 中使用 mod_rewrite 模块重定向对已移动到另外一台服务器上的资源的访问。
假设你正在重新设计公司的网站。你已决定将内容和样式(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 文件 )中:
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
处理的。
# tail -n 1 /var/log/apache2/access.log
检查 Apache 日志
在本文中,我们讨论了如何对已移动到其他服务器的资源进行重定向。 总而言之,我强烈建议你看看 mod_rewrite 指南和 Apache 重定向指南 ,以供将来参考。
一如既往那样,如果您对本文有任何疑虑,请随时使用下面的评论栏回复。 我们期待你的回音!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论