在我的.htaccess文件中,当我进行更新时,我使用变量(SetEnv
)来切换网站的开启/关闭,是安全还是甚至可以通过PHP脚本修改.htaccess文件?在PHP中修改.htaccess文件是否安全?
更具体,我需要评论/取消注释这些行:
#RewriteCond %{REMOTE_ADDR} !LOCALIPHERE
#RewriteCond %{REQUEST_URI} !^/Site/maintenance.htm
#RewriteCond %{REQUEST_URI} !^/Site/styles/style.css
#RewriteCond %{REQUEST_URI} !^/Site/includes/jquery-1.4.4.min.js
#RewriteCond %{REQUEST_URI} !\.(jpg|jpeg|png|gif|swf)$
#RewriteRule ^.* /Site/maintenance.htm [L]
谢谢
编辑:
我的安全定义是:我想要知道如果PHP脚本打开.htaccess文件并且网站正在同一时间被访问,网站将如何运作。
您应该使用原子写入,然后使用'file_put_contents(“。htaccess”,$ settings,LOCK_EX)'或者更好的方法'rename()'。所以Apache只会在完全写入时重新读取文件。 – mario 2011-04-27 14:00:21
@mario +1,这里有很棒的提示,同时也有非常不错的信息。如果文件被锁定,则所有连接都将处于挂起状态,直到文件被释放,因为.htaccess文件必须在执行php之前进行。我对吗? – Cybrix 2011-04-27 14:15:53
请记住,您的新.htaccess必须是完美的。任何语法错误和您的整个站点都将死亡,因为Apache'll会由于破坏中的错误指令而开始喷出500个内部错误.htaccess – 2011-04-27 14:16:42