我有以下的Apache2重写规则,我试图破译他们背后的意思:
1. RewriteEngine on 2. RewriteCond %{REMOTE_ADDR} !^1\.2\.3\.4 3. RewriteCond %{REQUEST_URI} !\.(css|gif|jpg|png)$ 4. RewriteCond %{DOCUMENT_ROOT}/../tmp/stop.txt -f 5. RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f 6. RewriteRule ^(.*)$ /$1 [R=503,L]
RewriteEngine 我closures了吗?
谢谢
你非常接近:
步骤2:不是请求的地址,而是客户端地址(发出请求的主机的IP地址):如果客户端地址不是1.2.3.4
第四步:正如@Florin Asavoaie提到的:这只是检查文件../tmp/stop.txt存在,无论是否被请求。
第5步:如果请求的文件不存在
第6步:它是AND而不是OR (所有规则必须匹配)。 所以:
if (rule 2 is true) AND (rule 3 is true) AND (rule 4 is true) AND (rule 5 is true) { Then return 503 - Service Temporarily Unavailable (which works) }
在步骤4中,只要确认该文件是否存在,无论是否被请求。
你真的testing过这些吗? 我不确定您是否可以使用3XX以外的代码进行“redirect”。