apache - 我可以一起使用mod_rewrite和apache自定义错误处理吗?

标签 apache .htaccess mod-rewrite redirect error-handling

目前,我们处于负载平衡的环境中,其中一台服务器存在问题。由于应用程序崩溃,我们收到错误500。当我们的技术人员对此进行调查时,我想进行修复。当您收到错误500时,我想一种重定向到第二台服务器上同一页面的方法。

在apache中,您可以使用以下方法简单地重定向:

ErrorDocument 500 http://xxx/ 

我的问题是,是否有可能使mod_rewrite指向重定向到错误500来自的特定页面?

例如,vm1.foo.bar/contact的错误为500,因此我们需要将其重定向到vm2.foo.bar/contact。

另外,这是一个运行Apache的Windows Server。

最佳答案

确定按照上面的注释发布一些命令。

首先像这样定义ErrorDocument:

ErrorDocument 500 /handle500.php

然后在/handle500.php内部有如下代码:
<?php
   if ($_SERVER["HTTP_HOST"] == 'vm1.foo.bar')
      header ("Location: http://vm2.foo.bar" . $_SERVER["REQUEST_URI"]);
   else
      header ("Location: http://vm1.foo.bar" . $_SERVER["REQUEST_URI"]);
   exit;
?>

关于apache - 我可以一起使用mod_rewrite和apache自定义错误处理吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21188716/

相关文章:

java - 在 Mac 上用 Eclipse 运行 tomcat

linux - 如何为所有请求添加 ~username 前缀?

regex - .htaccess:重定向除一个页面之外的所有页面

Apache 重定向到一个干净的 URL

apache - mod_rewrite代理超时

apache - .htaccess mod_rewrite 规则在 Ubuntu 中不起作用

apache - 仅针对特定域扩展上的文件夹的 RewriteCond

mysql - Moodle:安装失败 - 检测到编码错误

apache - 如何阻止垃圾邮件机器人使用 htaccess 访问网站?

.htaccess - 如何从 slim 框架 URL 中删除 index.php