.htaccess‘Down for Mitenance’和WordPress

时间:2016-06-22 作者:Henry

好的,我们需要一个固体。htaccess规则使以下情况发生:

拒绝所有人访问该网站(他们被带到“down for maintenance”页面,但允许我和我们的开发人员访问。

是的,有一个WordPress插件,但我们玩得很不开心。

这是我们的建议。htaccess规则

RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_ADDR} !^11\\.111\\.111\\.111
RewriteCond %{REQUEST_URI} !^/maintenance\\.html$
RewriteRule ^(.*)$ http://domain.com/maintenance.html [R=307,L]
请回答第一个问题!我们如何添加第二个允许查看正在开发的站点的IP地址?

第二个问题是,这条规则是否应该优先于其他规则。WordPress中的htaccess规则?WordPress确实创建了自己的。htaccess因此我提出了问题。

谢谢

2 个回复
SO网友:cybmeta

将规则设置在WordPress规则之上,并使用[OR]/[AND] 连接重写规则的运算符(默认情况下[AND] 使用运算符):

RewriteCond %{REMOTE_ADDR} !^11\\.111\\.111\\.111 [OR]
RewriteCond %{REMOTE_ADDR} !^22\\.222\\.222\\.222 [AND]
RewriteCond %{REQUEST_URI} !^/maintenance\\.html$
RewriteRule ^(.*)$ http://domain.com/maintenance.html [R=502,L]
PD:correct status code for maintenance mode is 502, not 307.

SO网友:bravokeyl

我们如何添加第二个允许查看正在开发的站点的IP地址?

我们可以只附加第二个REMOTE_ADDR 因为默认标志是[AND]

# BEGIN Maintenance 
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REMOTE_ADDR} !^11\\.111\\.111\\.11$    #First Address
    RewriteCond %{REMOTE_ADDR} !^123\\.45\\.67\\.89$     #Second Address
    RewriteCond %{REQUEST_URI} !^/maintenance\\.html$
    RewriteRule ^(.*)$ http://example.com/maintenance.html [R=307,L]
</IfModule>
# END Maintenance
上述规则规定,如果the request if not from first ip and not from second ip and the request is not /maintenance.html 将其重定向到带有标题的维护页面502. 支持@cybmeta,服务器维护的正确标头为502307 用于临时重定向。

的处理顺序RewriteRule :

首先检查重写规则^(.*)$的模式!^11\\.111\\.111\\.11$ 将进行检查!^123\\.45\\.67\\.89$,RewriteRule 已应用这条规则是否应该优先于其他规则.htaccess WordPress中的规则?

是/否,这取决于你的规则,最好是在WordPress之上.htaccess 否则生成规则flag[L] (last) 在WordPress中,规则停止处理下一个规则。

[L]标志导致mod\\u rewrite停止处理规则集。在大多数上下文中,这意味着如果规则匹配,则不会处理进一步的规则。这对应于Perl中的最后一个命令,或C中的break命令。使用此标志指示应立即应用当前规则,而不考虑其他规则。

在您的情况下,您可以将其放在顶部或底部。(未测试)

相关推荐

Redirect htaccess

我需要帮助重定向我的页面。例如,我有网站https://example.com. 我需要将内容从https://example.com 到https://example.com/blog. 这不是问题,我通过更改主页URL来做到这一点。这很有效。但现在我需要添加来自旧的重定向https://example.com 到https://xmpl.com.我想用。htaccess,但这不起作用。你们能帮帮我吗?以下是我对此的一些尝试,但两者都不起作用。RewriteEngine On RewriteRu