在我的.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