基本上我要开始在一个网站上工作,我想要一些我可以添加到我的.htaccess文件(或其他地方)的东西,就像这个伪代码一样:(我的ip将代替127.0.0.1)
if (visitors_ip <> 127.0.0.1)
redirectmatch ^(.*)$ http://www.example.com/under-construction.html
希望这有意义......
答案 0 :(得分:24)
那将是something like:
RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1
RewriteCond %{REQUEST_URI} !/mypage\.html$
RewriteRule .* http://www.anothersite.com/mypage.html [R=302,L]
正如Andrew指出的那样,如果您重定向到同一个域,则%{REQUEST_URI}条件会避免无限循环。
正如Xorax评论almost 9 years later:
你不应该使用
REMOTE_HOST
,在许多情况下都会失败。你应该使用REMOTE_ADDR
Cf“difference betweenREMOTE_HOST
andREMOTE_ADDR
”
答案 1 :(得分:3)
这是我最终使用的解决方案,请注意它与VonC类似,只是如果您选择重定向到同一个域,则会导致无限循环。
RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_HOST} !^127\.0\.0\.1
RewriteCond %{REQUEST_URI} !/coming-soon\.html$
RewriteRule .* http://www.andrewgjohnson.com/coming-soon.html [R=302,L]
还应该注意302是一个临时移动,应该使用而不是什么或301。
答案 2 :(得分:2)
<IfModule mod_rewrite.c>
RewriteEngine On
# Redirect all except allowed IP
ReWriteCond %{REMOTE_ADDR} !^000\.000\.000\.001$
RewriteCond %{REMOTE_ADDR} !000\.000\.000\.002$
ReWriteCond %{REMOTE_ADDR} !^000\.000\.000\.003$
RewriteRule (.*) http://YourOtherWebsite.com/$1 [R=301,L]
</IfModule>
在你的wordpress ifmodule之前 除了3个ip地址外,这将重定向所有人。
如果您的IP地址发生变化,您只需ftp到该站点并编辑.htaccess文件。
答案 3 :(得分:0)
小心这种方法。
我已经通过采用基于IP的方法限制访问,然后丢失了我的IP地址的租约而被烧毁。
当然你总是可以直接进入有问题的盒子并再次更改.htaccess文件,但是当你试图找出刚刚发生的事情时,5分钟的恐慌并不是很有趣,如果你不期待它发生。
我建议使用.htaccess(与htpasswd文件结合使用)来请求访问开发站点的凭据。
这方面的一个很好的例子是:http://aplawrence.com/foo-web/htaccess-authentication.html