只允许从一个IP地址访问所有文件,并将所有其他文件重定向到其他文件


Allow access to all files from only 1 IP address and redirect all others to other file

我不确定以前是否有人回答过这个问题,但我试着寻找它。无论如何,我目前正在开发一个网站,但我想让实际的网站内容只能从我的IP地址访问。然后我希望.htaccess将所有其他IP地址重定向到服务器上的一个单独文件。这一个文件将被称为subscribe.php

我试了几件事,但都没有得到我想要的结果。我知道我的服务器允许使用.htaccess,因为我已经用它来更改其他一些事情,比如防止缓存。

您可以使用mod_rewrite来执行此操作。在.htaccess文件中添加以下内容:

代码:

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !=123.45.67.89
RewriteRule index.php$ /subscribe.php [R=301,L]

替代解决方案:

<?php $allow = array("123.456.789", "456.789.123", "789.123.456"); //allowed IPs
if(!in_array($_SERVER['REMOTE_ADDR'], $allow) && !in_array($_SERVER["HTTP_X_FORWARDED_FOR"], $allow)) {
    header("Location: http://domain.tld/subscribe.php"); //redirect
    exit();
} ?>

希望这能有所帮助!

您也可以使用mod_rewrite。

在.htaccess文件中添加以下内容:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REMOTE_ADDR} ^80'.40'.20'.[0-9]$ # your ip here
RewriteCond %{REQUEST_URI} !^/subscribe.php
RewriteRule .? /subscribe.php [R,L]
</IfModule>