用PHP写一个.htaccess文件?

Jas*_*vis 7 php .htaccess

在我的PHP网站上,我希望有时向用户显示维护页面.我知道我可以很容易地在PHP中执行此操作,但我宁愿使用htaccess文件,我认为这种方式可能会更好.所以我想知道的是我可以在PHP中修改htaccess文件吗?如果有可能我也在想,

1 - 有文件,1有下面的代码,另一个不会,两个文件也包含我的其他htaccess东西.然后,当我运行管理脚本来切换显示哪个文件时,php可以重命名这两个文件,方法是将其名称更改为.htaccess

2-阅读当前.htaccess文件的内容并将下面的代码附加到其中,然后如果需要也可以将其从文件中删除.

RewriteEngine On
RewriteBase / 
RewriteCond %{REQUEST_URI} !^/maintenance\.php$
RewriteRule ^(.*)$ http://domain.com/maintenance.html [R=307,L]
Run Code Online (Sandbox Code Playgroud)

我的目标是构建一个管理脚本,可以通过1次单击处理来更改要显示或不显示的维护页面.

请提供有关如何执行此操作的示例代码或提示,或者是否可以从PHP修改.htaccess文件

hob*_*ave 12

您可以使用的fopen打开和使用fwrite写入文件.您需要在追加模式下打开它,阅读手册以了解哪些适用.

也就是说,这听起来像是一种奇怪的做事方式.

我只使用重写规则来检查文件存在,从而完成了你想要做的事情:

RewriteCond %{DOCUMENT_ROOT}/maintenance.html -f
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteRule ^.*$ /maintenance.html [L]
Run Code Online (Sandbox Code Playgroud)

如果maintenance.html文件存在,那么我的网站正在维护.


bob*_*nce 9

我会强烈建议.htaccessPHP.您必须为Web服务器用户(传统上具有非常低权限的用户)提供写访问权限.htaccess; 您只需要一个可利用的脚本,攻击者可以有效地重新配置您的服务器.

对于应用程序内切换维护模式,坚持让PHP自己返回维护页面.当您对应用程序本身进行维护时,可以轻松地将文件临时重命名.htaccess's到位以启用维护重写.