0

目前我在我的 .htaccess 文件中使用此代码来触发我的站点的维护页面。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/maintenance.html -f
RewriteCond %{DOCUMENT_ROOT}/maintenance.enable -f
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteRule ^.*$ /maintenance.html [R=503,L]
ErrorDocument 503 /maintenance.html
Header Set Cache-Control "max-age=0, no-store"
</IfModule>

我将如何做到这一点,以便我仍然可以访问我正在处理的目录,而不仅仅是我的 IP 地址,以防我的朋友希望访问它。

我做了一些搜索,但到目前为止还没有找到任何东西

干杯

汤姆

4

1 回答 1

0

我想说您可以在处理维护模式之前简单地实施一些异常规则:

<IfModule mod_rewrite.c>
RewriteEngine On

# immediately end all rewriting for specific IPV4 addresses
RewriteCond %{REMOTE_ADDR} ^123\.123\.123\.123$ [OR]
RewriteCond %{REMOTE_ADDR} ^321\.321\.321\.321$
RewriteRule ^ - [END]

# for everyone else: check for maintenance mode
RewriteCond %{DOCUMENT_ROOT}/maintenance.html -f
RewriteCond %{DOCUMENT_ROOT}/maintenance.enable -f
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteRule ^.*$ /maintenance.html [R=503,L]
ErrorDocument 503 /maintenance.html
Header Set Cache-Control "max-age=0, no-store"
</IfModule>

或者,您可以将否定条件作为附加条件添加到维护模式重写逻辑中。但我认为以上内容更易于阅读和维护。

于 2017-01-02T11:12:15.497 回答