Php - 是否可以根据使用的地址阻止访问网页?

时间:2014-02-06 01:31:12

标签: php access-control

请考虑以下情况。

本地网络上有一个站点,可以通过以下两种方式之一访问:

  1. 11.11.11.111/testsite(ip)
  2. test.site.com(vhost)
  3. php是否可以仅允许使用test.site.com进行访问?

    编辑:

    虽然有很多关于如何解决这个问题的好建议,但我选择了Publi Design& John V.的mod_rewrite建议,但是我在httpd.conf文件中实现了它,并重定向到了禁止页面。

    对我有用的是:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^test.site.com$ [NC]
    RewriteRule .? - [F]
    

2 个答案:

答案 0 :(得分:1)

正如Michael P在他的评论中所建议的那样,最好使用服务器配置文件,而不是PHP。但是用PHP可以 ,而且非常简单。您只需要使用PHP的全局变量if/else的简单$_SERVER语句。这样的事情应该做。

<?php
// put this at the top of every page that will be accessed
if ($_SERVER['HTTP_HOST'] != 'test.test.com') { 'Please visit this site using the correct link: http://test.test.com'; exit; }
?>

答案 1 :(得分:1)

我会避免PHP请求并上升一级。我没有试过这个,但也许.htaccess文件可以帮助你,使用类似的东西:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^11.11.11.111/testsite$ [NC]
RewriteRule ^(.*)$ test.site.com/$1 [L,R=301]

你可能不得不玩它,但我会想象沿着这些方向的东西可以让你到达你想去的地方。