我建立了一个网站(PHP)超过60页。 只是现在我已经意识到(不幸的),我应该建在“维护模式”功能,让管理员暂时禁用该网站,它指向一个维护模式页面。 这将只允许那些登录为管理员查看该网站。
我看到的选项:
新的“包括”文件添加到每一个PHP页面的顶部。
我已经一个包括用于上显示导航栏
每一页(导航类)。 我可以写的维护模式
代码在这个类。
我还有别的选择吗? 第1选项似乎并不像最有效的,而第二个刚刚好像不好的编程。 是否有其他更好的办法,包括对每一个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]
的.htaccess“停机维护”页转到
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_HOST} !^888\.888\.888\.888
RewriteRule $ /maintenance.html [R=302,L]
使用的.htaccess重定向到维护页面升级过程中
# 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串
指定在主文件之前自动解析的文件名。 该文件包括,如果它被称为与需要()函数,因此会使用include_path。
特殊值none禁止了自动前缀。
你可以在php.ini中设置此,或阿帕奇(虚拟)主机文件或使用的.htaccess的php_flag的auto_prepend_file file.php
[或php_admin_flag(?)]
编辑
- 也许你不应该把包含文件在您的Web根目录或子文件夹。
- 请记住调用exit或在最后死去。
而非指定IP地址,你也可以核对HTTP_USER_AGENT中的RewriteCond ..
RewriteCond %{HTTP_USER_AGENT} !MyCrazyString
RewriteCond %{THE_REQUEST} !upgrade\.txt
RewriteRule .* /upgrade.txt [R=307,L]
任何人只要有标记到自己的浏览器的用户代理字符串的结尾“MyCrazyString”可以访问,其他人获取维护模式页/网站。
只要不要求高安全性,这是理想的; 快速,轻松地传播给管理员,完全可移植的,重要的是,如果你重新连接你的DSL当实际的服务器访问的唯一的人是睡在世界的另一端不会打破。
; O)颜色
最简单的方法是集中了一些关于现场发电的逻辑。 这样,您就可以在打开维护模式和重定向任何非管理员到不同的页面。 这不会是很难做到的,因为我想你有一些代码,不断弹出所有的地方,所以只是延长登录功能来检查一个全局变量(如果你没有在你的网页有任何共同的全局变量你可以只通过SETENV设置在.htaccess)。
我认为, 标准的Apache表情更容易比理解重写规则 。
维护之前我文件/ home / coolcmd / site_maintenance_off重命名为/ home / coolcmd / site_maintenance_on。
代码段/.htaccess:
# 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>