我已经建立了一个网站(PHP)超过60页。我只有现在意识到(不幸的是),我应该建立在一个"在维护模式"的特征,以允许管理员,以暂时禁止的网站,并指出它对维护模式的网页。这只会让那些记录在作为一个管理,以查看的网站。

选择我看到的是:

  1. 添加一个新的"包括"文件的每个单PHP页。

  2. 我有一个包括用于显示上的导航栏
    每一页(导航班)。我可以写维护模式
    代码在这一类。

我有任何其他选择吗?1的选择似乎并不像最有效的,并将2个似乎只是不好的编程。是否有任何其他更好的方式来包括一个新的文件的每一个php的文件?

谢谢!

ps-该网站不起呢

有帮助吗?

解决方案

你可以使用 .htaccess 重定向到另一个网页,而在维护模式。

三各种例子:

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

.就"维护"网页重定向

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$ 
RewriteCond %{REMOTE_HOST} !^888\.888\.888\.888

RewriteRule $ /maintenance.html [R=302,L] 

重定向到维护页升级期间使用。要

# redirect all visitors to alternate site but retain full access for you
ErrorDocument 403 http://www.alternate-site.com
Order deny,allow
Deny from all
Allow from 99.88.77.66

维护模式对于apache

其他提示

我知道这是一个古老的问题,但我添加这一对未来的搜索者谁来过这个网页经过搜索。

我用一个PHP重定向。

在每页上添加如下:

<?php
include('PATH/TO/FILE/config.php');
if(maintenance == 1) {
header('Location: http://example.com/maintenance.php');
}
else {
// do nothing
}
?>

和你的config.php 文件只是做一个可变的像这样

$maintenance = 0; // turns maintenance mode off

当你想你的网站能在维护模式只是改变"0"为"1".这将所有网站的访客来维护网页。

我输入代码很快没有测试但它应的工作。

auto_prepend_file 字符串

指定名称的文件,该文件是自动分析以前的主要文件。该文件包括如果它被称为与本需要()功能,以包含路径下使用。

特别值没有禁用自动加上.

你可以设定此在php.ini,或阿帕奇(虚拟的)主持的文件。就与php_flag auto_prepend_file file.php

[或php_admin_flag(?)]

编辑

  • 也许你不应该把包括文件在你的网页根dir或一个子文件夹。
  • 记得要呼退出或死亡的结束。

而不是指定的IP地址,你也可以检查对HTTP_USER_AGENT在重写过..

RewriteCond %{HTTP_USER_AGENT} !MyCrazyString
RewriteCond %{THE_REQUEST} !upgrade\.txt
RewriteRule .* /upgrade.txt [R=307,L]

任何人与"MyCrazyString"标记到结束他们的浏览器的用户代理串可以访问,其他人都得到维护模式的网页/网站。

所以只要高安全不需要,这是理想的;快速和易于传播给管理员,完全没有限制的,而且重要的是,不会打破,如果你连你的DSL当唯一的家伙 实际 服务器的访问入睡在另一边的世界。

;o)Cor

最简单的办法就是集中的一些逻辑关于网站的产生。这样你可以把维护模式和重新定向任何非管理员一个不同的网页。这将不难做到,因为我想你有一些代码,不断出现了所有的地方,所以只是延长登录的功能检查一个全球性的变量(如果你没有任何共同的全球变量的跨页你可以把它设置。要通过setenv).

我认为, 标准Apache表达式 更易于理解比 重写规则.

之前维护我重新命名的文件 /home/coolcmd/site_maintenance_off/home/coolcmd/site_maintenance_on.

代码段/.要:

# If file, directory or symlink /home/coolcmd/site_maintenance_on exists,
# and requested file is not /maintenance.html,
# and not an admin's IP...
<If "-e '/home/coolcmd/site_maintenance_on' && %{REQUEST_URI} != '/maintenance.html' && %{REMOTE_ADDR} != '111.111.111.111'">
# Generate status code 503 for URL beginning with /, in other words for ANY URL.
# This is not "the real redirection 3xx".
Redirect 503 "/"
# This page handles status code 503. All external resources used by page
# (for example, maintenance.css), if any, must be added to <if> above.
ErrorDocument 503 /maintenance.html
# Maintenance probably will end in 10 minutes.
Header set Retry-After 600
</If>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top