3

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

我尝试了几件事,但没有提供我想要的结果。我知道我的服务器允许.htaccess使用,因为我用它来更改其他一些东西,例如防止缓存。

4

2 回答 2

15

你可以用它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();

} ?>

希望这可以帮助!

于 2013-07-17T16:17:25.113 回答
1

你可以使用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>
于 2013-07-17T16:16:39.907 回答