【问题标题】:disabling access to website temporary for all visitors Except myself [duplicate]暂时禁止所有访问者访问网站,除了我自己[重复]
【发布时间】:2015-12-25 13:07:15
【问题描述】:

出于技术原因并在我的 PHP 网站上测试新功能,我想暂时禁止普通用户访问网站并显示类似 '网站正在维护中' 之类的消息。

但是我希望能够访问所有页面并且我可以正常使用。
如何使用 htaccess 、 php 代码或其他方法做到这一点?

【问题讨论】:

  • 只允许您的 ipaddress 访问该页面。例如 $ip = $_SERVER['REMOTE_ADDR']; if($ip !="yourip"){echo "网站正在维护中";}

标签: php .htaccess


【解决方案1】:

你会在这里找到答案:

Deny all, allow only one IP through htaccess

或者您也可以通过 PHP 来实现:

如果你自己的ip是:10.233.34.12

if($_SERVER['SERVER_ADDR'] != '10.233.34.12'){
  header("Location: http://example.com/siteUnderMaintenance.php");
 die();
}

【讨论】:

    【解决方案2】:
    RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1 //your IP
    RewriteCond %{REMOTE_ADDR} !^1\.11\.11\.111 //your server IP
    RewriteCond %{REQUEST_URI} !^/soon\.html$
    RewriteCond %{REQUEST_URI} !^/logo\.jpg$
    RewriteRule ^(.*)$ /soon.htm [R=301,L]
    

    .htaccess中使用它

    【讨论】:

      【解决方案3】:

      只允许您的 IP。试着把它放在你的 .htaccess 中

      order deny,allow
      deny from all
      allow from 111.222.333.444
      

      或者你可以使用

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

      上面的代码将所有用户发送到maintenance.html,除了那些具有指定IP的用户。

      【讨论】:

      • 如果 OP 有 apache 2.4 或更高版本?
      • 这种方法如何显示消息或将用户重定向到构建页面?
      • @ahmad,被阻止的访问者将显示“403 Forbidden”错误消息。您可以通过更新“错误文档”来自定义此错误消息。 ErrorDocument 403 /error_pages/403.html
      • @Harshit Shrivastava,我在 htaccess 中尝试你的第一个代码到本地主机上的 ErrorDocument 并在根目录上创建 403.html 页面,如下所示:ErrorDocument 403 /403.html order deny,allow deny from all allow from 31.58.64.19,但是 31.58.64.19 是我的 IP,我无法打开页面并显示 Forbidden 默认消息。
      猜你喜欢
      • 2020-03-01
      • 2019-06-17
      • 2023-04-03
      • 2010-09-16
      • 2015-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多