我正试图强制所有流量到维护页面
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 /.
原因:从远程服务器读取错误
答案 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