在php网站维护下显示网站的更好方法是什么。我可以使用IIS或Php.ini文件中的任何配置。或者我应该根据配置文件中的参数加载离线页面。如果参数为true,则加载offline.html或者如果它是0加载登录页面。 请让我知道你的想法。
答案 0 :(得分:4)
如果您使用的是Apache默认值,通常index.html
优先于index.php
。只需添加一个包含维护消息的index.html
文件,然后在完成后将其删除。
Jacek是对的 - 这并不能阻止任何人访问该网站的主要index.php
以外的任何内容。
答案 1 :(得分:0)
您可以在网络目录中使用.htaccess
文件,以防止人们在维护期间访问您的网站。把它放在你的根目录中并添加如下内容:
Order Deny,Allow
Deny From All
<Files ~ "index.html$">
Allow from all
</Files>
然后人们只能访问index.html文件。制作一些Under Maintenance页面。
答案 2 :(得分:0)
我在Chris的回答中添加了+1,然后意识到它确实存在重要的安全问题。好的,index.php
的优先级低于index.html
,但并不代表用户无法进入浏览器,例如:www.address.com/something 。在这种情况下,网站的响应方式确实无法预测。在某些CMS中,它会加载子页面,而在其他一些不是......有时在.htaccess
中,index.php重定向都是未知的......
在这种情况下,如果您在index.html
覆盖期间对您的网站进行了更改(在线 - 您不应该这样做),请记住,用户可能会找到您要更改的所有内容。因此,如果您更改登录系统,并且会出现错误,每个人都可以在没有密码的情况下登录,则有人可以输入其他网址,或者从Google访问您的网页并销毁某些内容。
为了得到答案:你可以使用index.html覆盖默认主页,但更改.htaccess以将所有内容重写为index.html确实是一个好主意,只是为了文件编辑或上传时的安全性强>
PS。我认为这在新的答案中值得一提,因为这确实是一个巨大的安全漏洞。
我发现了一个好主意。如果您的所有请求都被重定向到index.php - 通常是,如果您愿意,您可以在index.php中编写一个简单的if:
if ($_SERVER['HTTP_USER_AGENT'] != 'wfuia eu2348 1029 38efoa ojei') {
echo 'Site under maintence';
}
else {
// Your old index.php
}
然后,将您的用户代理更改为:'wfuia eu2348 1029 38efoao ojei',并随时测试所有内容。我认为这足够安全,可以测试网站几分钟,然后删除那几行。用户代理应该是复杂的,唯一的方法就是接管你的互联网传输包,并重写它,这不是那么明显。希望它有所帮助。