基本上我即将开始在一个网站上工作,我想我可以添加到我的.htaccess文件(或其他地方),将像这样的伪代码:(我的IP将代替127.0.0.1)
if (visitors_ip <> 127.0.0.1) redirectmatch ^(.*)$ http://www.example.com/under-construction.html
希望这是有道理的...
gr8qqesn1#
这将是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在差不多9年后评论的那样:您不应该使用REMOTE_HOST,它在很多情况下会失败。您应该使用REMOTE_ADDR。参见“difference between REMOTE_HOST and REMOTE_ADDR“
REMOTE_HOST
REMOTE_ADDR
mefy6pfw2#
下面是我最终使用的解决方案,注意它与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。
0yycz8jy3#
<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文件。
tyky79it4#
使用这种方法时要小心。我已经得到了烧伤采取基于IP的方法来限制访问,然后失去了对我的IP地址的租约。当然,您可以使用ssh命令再次修改.htaccess文件,但是如果您没有预料到发生了什么,那么在试图找出刚刚发生的事情时的5分钟恐慌就不那么有趣了。我建议使用.htaccess(与htpasswd文件结合使用)来请求访问开发站点的凭据。下面就是一个很好的例子:http://aplawrence.com/foo-web/htaccess-authentication.html
slwdgvem5#
<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>
5条答案
按热度按时间gr8qqesn1#
这将是something like:
正如Andrew所指出的,如果重定向到同一个域,%{REQUEST_URI}条件可以避免无限循环。
正如Xorax在差不多9年后评论的那样:
您不应该使用
REMOTE_HOST
,它在很多情况下会失败。您应该使用REMOTE_ADDR
。参见“difference between
REMOTE_HOST
andREMOTE_ADDR
“mefy6pfw2#
下面是我最终使用的解决方案,注意它与VonC的类似,只是如果您选择重定向到同一个域,它会导致无限循环。
还应注意的是,302是临时移动,应使用,而不是无或301。
0yycz8jy3#
在你的wordpress ifmodule之前,这将重定向每个人,除了3个IP地址的问题.
如果您的IP地址发生变化,您只需通过FTP连接到该网站并编辑.htaccess文件。
tyky79it4#
使用这种方法时要小心。
我已经得到了烧伤采取基于IP的方法来限制访问,然后失去了对我的IP地址的租约。
当然,您可以使用ssh命令再次修改.htaccess文件,但是如果您没有预料到发生了什么,那么在试图找出刚刚发生的事情时的5分钟恐慌就不那么有趣了。
我建议使用.htaccess(与htpasswd文件结合使用)来请求访问开发站点的凭据。
下面就是一个很好的例子:http://aplawrence.com/foo-web/htaccess-authentication.html
slwdgvem5#