我不确定之前是否已经回答了这个问题但是我试着去寻找它。无论如何,我目前正在开发一个网站,但我想只能从我的IP地址访问实际的网站内容。然后我想.htaccess将所有其他IP地址重定向到我服务器上的单独文件。该文件将被称为subscribe.php
。
我尝试了几件事但没有提供我想要的结果。我知道我的服务器允许使用.htaccess
,因为我已经用它来改变一些其他的东西,比如防止缓存。
答案 0 :(得分:12)
您可以使用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();
} ?>
希望这有帮助!
答案 1 :(得分: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>