经过研究,我发现显示维护方式的.htaccess代码如下:
# BEGIN MAINTENANCE MODE
# <IfModule mod_rewrite.c>
# RewriteEngine on
# RewriteCond %{REMOTE_ADDR} !^111\.111\.111\.111
# RewriteCond %{REQUEST_URI} !maintenance.html$ [NC]
# RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
# RewriteRule .* maintenance.html [R=302,L]
# </IfModule>
# END MAINTENANCE MODE
这种方法还可以,但是一旦我使用计算机进入主页(这是唯一加载实际站点的计算机),然后我尝试转到该站点中的另一个页面(示例:主页是hello.com另一个页面是hello.com/blog),它将把我重定向到维护模式(对我来说,这是PDF文件)。
换句话说,主页加载了我的IP,但是站点的所有其他页面都重定向到了我为维护模式设置的PDF。
我一直在寻找答案,但是到处都可以看到上面显示的代码。
示例:
How to set maintenance mode for entire website with htaccess
答案 0 :(得分:1)
尝试取消注释htaccess中的指令。整个事情都被注释掉了。没有指令,所有这些都将无法使用。任何以#开头的行都将被服务器忽略。
答案 1 :(得分:0)
我无法真正弄清楚,但是我找到了一种解决方法(请注意,我正在使用Wordpress):
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] RedirectMatch ^/$ /maintenance.html </IfModule>
这使我可以向普通用户显示“维护”页面,同时直接转到http://example.ex/index2.php
仍能看到整个网站。