提问人:Andrew G. Johnson 提问时间:2/7/2009 更新时间:2/7/2009 访问量:976
.htaccess 中的布尔值 AND
Boolean AND in .htaccess
问:
好吧,我正在使用以下代码将没有我的 IP 的用户重定向到即将推出的页面:
rewritebase /
rewritecond %{REMOTE_HOST} !(^1\.2\.3\.4)
rewritecond %{REQUEST_URI} !/comingsoon\.html$
rewriterule .* http://www.andrew-g-johnson.com/comingsoon.html [R=302,L]
我想让我有两个允许的 IP,有什么想法吗?
答:
1赞
cletus
2/7/2009
#1
您可以指定一个正则表达式,如下所示:
(1\.2\.3\.4|5\.6\.7\.8)
但是,您想要的例外越多,这就会变得笨拙。
您可能想要执行的操作是将 mod_access(假设您使用的是 Apache)与 allow 和 deny 指令一起使用。
order deny, allow
deny all
allow from 1.2.3.4
allow from 5.6.7.8
ErrorDocument 403 http://www.andrew-g-johnson.com/comingsoon.html
结合 403 的自定义错误文档,该文档显示即将推出。
1赞
One Crayon
2/7/2009
#2
我实际上会推荐 Cletus 的建议,但如果您想坚持使用 .htaccess,另一种选择也是添加更多条件行(好处是它比将它们全部连接成一个长正则表达式更清晰):
rewritebase /
rewritecond %{REMOTE_HOST} !(^1\.2\.3\.4)
rewritecond %{REMOTE_HOST} !(^5\.6\.7\.8)
# and so forth
rewritecond %{REQUEST_URI} !/comingsoon\.html$
rewriterule .* http://www.andrew-g-johnson.com/comingsoon.html [R=302,L]
0赞
Gumbo
2/7/2009
#3
RewriteCond
指令与 AND 隐式组合。所以你只需要添加另一个指令来表达这一点:RewriteCond
RewriteCond %{REMOTE_HOST} !^1\.2\.3\.4$
RewriteCond %{REMOTE_HOST} !=5.6.7.8
RewriteRule !^comingsoon\.html$ comingsoon.html [R=302,L]
此外,还应指定地址 usind 的开头和结尾,或与 进行字典比较。^
$
=
下一个:GD 缩略图生成器有问题
评论