我目前正在一个生产站点上工作,htaccess正在阻止没有我的IP的用户访问该站点:
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^11.22.33.44
RewriteCond %{REQUEST_URI} !^/brb/(.)*$ [NC]
RewriteRule ^(.*)$ /brb/index.html [R=307,L]
Maintenance mode, basically.
我现在意识到,WP cron没有运行。我试图通过选择“立即运行”来强制他们运行(WP Cron Control插件)。他们都被困在“跑步:(现在)”中,但从不执行。
我认为这与htaccess有关,但不知道如何在不允许所有公共流量的情况下为wp cron破例?
最合适的回答,由SO网友:MrWhite 整理而成
这个.htaccess
指令阻止任何不来自IP地址的HTTP请求。然而,我相信WP-Cron也是一个来自服务器的HTTP请求。因此,您还需要为服务器的外部IP地址设置一个例外。
这些指令也可以简化一些。。。
例如:
RewriteCond %{REMOTE_ADDR} !=203.0.113.111
RewriteCond %{REMOTE_ADDR} !=11.22.33.44
RewriteRule !^brb/ /brb/index.html [R=307,L]
在哪里
203.0.113.111
是服务器的IP地址。
这个=
CondPattern上的操作符使其成为字典式字符串比较,而不是正则表达式,因此不需要字符串锚点的开头(^
) 或者逃避文字点(你无论如何都不会这么做,但严格来说应该这么做)。
不需要附加条件来检查URL路径是否未启动/brb/
, 因为这可以并入RewriteRule
图案。(而且不需要捕获组,因为您没有任何反向引用。)