我正在尝试使用.htaccess
设置维护模式,这允许从某个IP访问的用户仍然可以查看该站点。该站点从CMS(Perch Runway)运行,它使用重写规则作为系统的一部分,因此这些需要对来自该IP的访问者起作用。 Perch Runway代码如下:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/perch
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* /admin/core/runway/start.php [L]
我的重定向维护代码是:
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的用户展示maintenance.html
页面,因此无法使用deny
。
非常感谢!
答案 0 :(得分:0)
结合评论中发布的答案,我在Wordpress页面上对此进行了测试,结果正常:
ErrorDocument 403 /liesmich.html
order deny,allow
deny from all
allow from 111.222.333.444
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
因此对于Perch Runway看起来像这样我打赌:
ErrorDocument 403 /maintenance.html
order deny,allow
deny from all
allow from 111.222.333.444
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/perch
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* /admin/core/runway/start.php [L]
从评论中发布答案,因为新行被切断,代码看起来很糟糕。