.htaccess 如果文件存在,请重写访问规则

.htaccess 如果文件存在,请重写访问规则,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我想使用htaccess检查名为offline.txt的文件是否与htaccess文件位于同一目录中,如果它存在,请执行以下操作: RewriteRule ^.*$ /websiteOffline.php [L] 也有一个特定ip地址范围的例外 其想法是,如果我想关闭整个网站进行维护,我可以简单地放置一个名为offline.txt的文件,这样做可以让某些ip绕过这种情况 对如何实现这一点有什么建议吗 谢谢 我尝试了以下代码,但似乎不起作用: RewriteEngine on RewriteC

我想使用htaccess检查名为offline.txt的文件是否与htaccess文件位于同一目录中,如果它存在,请执行以下操作:

RewriteRule ^.*$ /websiteOffline.php [L] 
也有一个特定ip地址范围的例外

其想法是,如果我想关闭整个网站进行维护,我可以简单地放置一个名为offline.txt的文件,这样做可以让某些ip绕过这种情况

对如何实现这一点有什么建议吗

谢谢

我尝试了以下代码,但似乎不起作用:

RewriteEngine on
RewriteCond /offline.txt -f
RewriteRule  ^(.*)  /websiteOffline.php [L]
更新

刚才用了乔恩的建议如下:

RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/offline.txt -f
RewriteRule  ^(.*)  /websiteOffline.php [L]

这方面的一个小问题是,文件websiteOffline.php位于应用rewritecond的文件夹中,因此无法显示该文件。任何建议

您不能为
-f
测试使用相对位置。您需要包含完整路径:

RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/folder/offline.txt -f
RewriteCond %{REQUEST_URI} !/websiteOffline.php
RewriteCond %{REMOTE_ADDR} !^12\.34\.56\.78$
RewriteRule  ^(.*)  /websiteOffline.php [L]
其中
/folder/
是htaccess文件所在的路径


在这里,如果您的IP地址是
12.34.56.78
,并且您尝试访问该文件夹,它将不会重定向您。

第一部分:查看
RewriteCond
-f
标志:
RewriteCond office.txt-f
应用其中任何一种方法都可以。您不需要同时使用这两种方法。尝试了RewriteCond offline.txt-f,但似乎不起作用。我已经用我尝试过的方法更新了我的帖子。谢谢,关于如何为允许的_ips.txt文件中定义的某些ip地址重写这些规则,有什么想法吗?还有一个小问题,就是文件websiteOffline.php位于应用重写条件的文件夹中,因此无法显示该文件。有什么建议吗?谢谢