提问人:Andrew G. Johnson 提问时间:11/16/2008 最后编辑:RavinderSingh13Andrew G. Johnson 更新时间:3/7/2023 访问量:32354
想要重定向除我之外的所有访问者
Want to redirect all visitors except for me
问:
基本上,我即将开始在一个网站上工作,我想要一些可以添加到我的.htaccess文件(或其他地方)的东西,该文件的工作方式类似于以下伪代码:(我的IP将代替127.0.0.1)
if (visitors_ip <> 127.0.0.1)
redirectmatch ^(.*)$ http://www.example.com/under-construction.html
希望这是有道理的......
答:
这将是这样的:
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} 条件可以避免无限循环。
你不应该使用,它在很多情况下都会失败。您应该使用 .
Cf“REMOTE_HOST
和REMOTE_ADDR
的区别REMOTE_HOST
REMOTE_ADDR
"
评论
RewriteCond %{REMOTE_HOST} !^::1
使用这种方法时要小心。
我因采用基于 IP 的方法来限制访问而感到筋疲力尽,然后失去了对我的 IP 地址的租约。
当然,您可以随时通过 SSH 连接到有问题的框中并再次更改 .htaccess 文件,但是如果您不希望它发生,那么当您试图弄清楚刚刚发生的事情时,5 分钟的恐慌就不太有趣了。
我建议改用 .htaccess(与 htpasswd 文件结合使用)来请求访问开发站点的凭据。
一个很好的例子是:http://aplawrence.com/foo-web/htaccess-authentication.html
评论
这是我最终使用的解决方案,请注意,它与 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。
评论
<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 文件。
<IfModule mod_rewrite.c>
RewriteEngine On
#IPv4
RewriteCond %{REMOTE_ADDR} !^26\.122\.33\.214
#IPv6
RewriteCond %{REMOTE_ADDR} !^2a01\:3f0d\:e31e\:c410\:98b\:a6ff\:45b0\:5132
#avoid infinite loop
RewriteCond %{REQUEST_URI} !/offline/index.html$ [NC]
#allow images to be accessed
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
#redirect to the offline page or other URL.
RewriteRule .* /offline/index.html [R=302,L]
</IfModule>
上一个:提交表单后保持动画 GIF
下一个:动态创建查询
评论