如何将所有流量重定向到维护页面

时间:2015-11-22 11:22:05

标签: linux apache url-redirection centos6 apache2.2

我正试图强制所有流量到维护页面

php_value error_reporting 32767

AddDefaultCharset utf-8

Options -Indexes

php_flag display_errors off  

RewriteEngine On

RewriteRule ^(.*)$ https://example.com/maintenance.html [P,L,NC] 

我收到此错误

  

代理错误

     

代理服务器收到来自上游服务器的无效响应。   代理服务器无法处理请求GET /.

     

原因:从远程服务器读取错误

2 个答案:

答案 0 :(得分:2)

<IfModule mod_rewrite.c>
     RewriteEngine on
     RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000
     RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
     RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
     RewriteRule .* /maintenance.html [R=302,L]
</IfModule>

答案 1 :(得分:0)

提供维护页面的最简单方法是使用符号链接,这样您就不必更改Apache配置。

在这种情况下,DocumentRoot可以是 index.html 。将 index.html 复制到 live.html ,然后创建 maintenance.html 。在进行维护时,请在 maintenance.html 指向一个符号链接,完成后,将其指向 index.html

以下是命令(Linux):

cp index.html live.html
vim maintenance.html (or something to create maintenance.html)
rm index.html
ln -sf maintenance.html index.html (point index.html at maintenance.html)
-- do maintenance --
ln -sf live.html index.html