暂时禁用PHP网站

时间:2014-06-09 19:01:27

标签: php security web iis-6

我有一个我拥有的PHP网站。我想在进行更改时暂时禁用网站(还有很多工作要做)。我尝试重命名index.php文件,但最终用户可以通过键入URL(或者如果他已经为页面添加了书签)来导航到页面。有没有办法暂时禁用整个网站?

编辑:此接受的答案适用于Apache Web服务器。我目前使用的是IIS6(而不是IIS7,其中可以在web.config文件中完成相同的重写)。在IIS6中有解决此问题的方法吗?

3 个答案:

答案 0 :(得分:5)

您可以使用.htaccess文件重定向到维护页面:

RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000
RewriteCond %{REQUEST_URI} !^/maintenance\.html$
RewriteRule ^(.*)$ http://domain.com/maintenance.html [R=307,L]

一些有用的链接:

http://www.shellhacks.com/en/Redirect-Site-to-Maintenance-Page-using-Apache-and-HTAccess

http://perishablepress.com/htaccess-redirect-maintenance-page-site-updates/

http://wp-mix.com/maintenance-mode-htaccess/

答案 1 :(得分:2)

虽然bartek打败了我的Apache mod_rewrite规则,迫使网站将所有流量重定向到维护/离线页面,但我想发布我的变体,这个想法可以允许特定的访问网站的IP地址:

RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^123.45.67.890$
RewriteCond %{REMOTE_ADDR} !^127.0.0.1$
RewriteCond %{REMOTE_ADDR} !^::1$
RewriteCond %{REQUEST_URI} !^/offline.html$
RewriteRule ^(.*)$ http://your.great.website/offline.html [R=302,L]

请注意,根据您的Apache版本,您可能必须逃避IP地址中的.:,如下所示:

RewriteCond %{REMOTE_ADDR} !^123\.45\.67\.890$
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1$
RewriteCond %{REMOTE_ADDR} !^\:\:1$

这个想法是访问者不是来自123.45.67.890 - localhost(IPv4)或127.0.0.1(IPv6)的::1地址 - 和请求的URI不是/offline.html,然后将该人重定向到http://your.great.website/offline.html

这意味着您只需将123.45.67.890替换为您要连接的IP地址,以便在执行工作时拥有进入网站的窗口。但是其他任何不是123.45.67.890的人?好吧,他们看到offline.html页面。

答案 2 :(得分:0)

我也会提出这个解决方案。

RewriteEngine On
RewriteCond %{QUERY_STRING} !access=dbcaf771cc0c4e23a0fc895d0afa106f
RewriteCond %{REQUEST_URI} !^/maintenance.html$
RewriteRule ^(.*)$ /maintenance.html [R=302,L]

除非您的请求在查询字符串中包含access=dbcaf771cc0c4e23a0fc895d0afa106f,否则您只需重定向到维护页面。