有沒有什麼辦法可以用php代碼修改.htaccess
?通過php代碼修改.htaccess
我只是試圖
$handle=fopen("./dir/.htaccess",w);
fwrite($handle, "order deny,allow\ndeny from all");
fclose($handle);
,這似乎並不工作。
P.S.我無法使用中的httpd.conf
,因爲我沒有root權限。
有沒有什麼辦法可以用php代碼修改.htaccess
?通過php代碼修改.htaccess
我只是試圖
$handle=fopen("./dir/.htaccess",w);
fwrite($handle, "order deny,allow\ndeny from all");
fclose($handle);
,這似乎並不工作。
P.S.我無法使用中的httpd.conf
,因爲我沒有root權限。
代碼是正確的。唯一的問題是運行php的用戶是apache
。我使用whoami
命令檢查了這一點。因此文件權限需要相應地改變。
將文件權限更改爲777完美。
感謝Mike
777權限就像是讓你的前門解鎖。請注意,共享您的服務器的任何其他用戶現在可以覆蓋您的.htaccess文件。將其重新更改爲644或444,直到需要再次更改爲止。考慮將代碼放入.htaccess本身,以限制網絡訪問者訪問它(雖然這不會阻止它對付系統上的其他人)。 –
@PhilPerry我明白風險。由於我需要修改的.htaccess是葉級別.htaccess。所以它不會影響我的整個網站,但只是一個目錄。我在使用之前計算了風險。 – Dheerendra
好的,只要您瞭解將文件或目錄打開以供任何人寫入的潛在後果。我提出了建議,因爲我經常看到有人試圖對新手有所幫助,他們首先以「首先將所有內容修改爲777」開始他們的指示。這在40年前可能還行,但任何電腦上的黃金法則都是「不要相信任何其他人」。 –
是的,您可以使用PHP代碼修改.htaccess
。
你可以做這樣的..
$handle=fopen(".htaccess",'a'); //<--- Surround the 'a' with quotes. You didn't do that btw
fwrite($handle, "order deny,allow\ndeny from all");
fclose($handle);
嘗試從非常同一位置的.htaccess
這段代碼運行。
什麼是文件權限? PHP運行的用戶是什麼?你收到什麼錯誤信息?嘗試把'error_reporting(-1); ini_set('display_errors',1);'在代碼的頂部。 – Mike
php作爲'apache'運行;並且文件權限是755 – Dheerendra
如果權限是755,除非它屬於'apache',否則您將無法寫入它。 – Mike