站点维护模式使我的IP仅查看主页(htaccess)

时间:2019-01-08 19:46:41

标签: php .htaccess web redirect mod-rewrite

经过研究,我发现显示维护方式的.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。

我一直在寻找答案,但是到处都可以看到上面显示的代码。

示例:

Redirect to Maintenance Page

How to set maintenance mode for entire website with htaccess

.htaccess “Down For Maintenance” Page Redirect

2 个答案:

答案 0 :(得分:1)

尝试取消注释htaccess中的指令。整个事情都被注释掉了。没有指令,所有这些都将无法使用。任何以#开头的行都将被服务器忽略。

答案 1 :(得分:0)

我无法真正弄清楚,但是我找到了一种解决方法(请注意,我正在使用Wordpress):

  1. 重复的index.php文件,并将其命名为index2.php
  2. 在Wordpress的“设置<常规y”下,将“网站地址”(注意不是Wordpress URL,仅是网站)更改为:http://example.ex/index2.php而不是http://example.ex/
  3. 在.htaccess文件中,我为index.php添加了重定向语句。最终结果如下:
<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

仍能看到整个网站。