2011-09-29 43 views
4

我有一個習慣,通過添加.bak擴展名(file.ext.bak)來進行文件備份。有多個擴展名的PHP文件會被解析嗎?

想象一下,如果我在PHP,config.php中有一個配置文件,並且我想通過添加.bak擴展名來備份該文件,那麼文件會被解析還是會看到源代碼,如果客戶端意外終止網址是什麼?它依賴於服務器嗎?

我已經嘗試了MAMP服務器上的一些測試,但它似乎是解析

+5

如何使用版本控制而不是手動拷貝? – CodesInChaos

+1

我太懶了 –

+0

怎麼不用VC懶惰?與使用FTP或類似機制相比,只需執行提交併將文件放入可訪問的目錄可節省大量時間。手動重命名備份需要更多時間。 – CodesInChaos

回答

3

。這是一個不好的習慣,以保持通過瀏覽器訪問反正這些文件,但你應該要檢查你的httpd.conf這些行:

<IfModule mod_php5.c> 
    AddType application/x-httpd-php .php .phtml .php3 
    AddType application/x-httpd-php-source .phps 
</IfModule> 

這將告訴PHP文件,實際上包含的代碼是Web服務器執行。

  • 你可以在那裏添加.bak文件(但它仍然是一個壞習慣)。
  • 另一個解決方法是將文件重命名爲file.bak.ext )。
  • 最好的解決方案仍然是將文件移動到瀏覽器無法訪問它們的地方,不在文檔根目錄和其他 映射中。
+0

正如我所料。感謝您的確認和您的好解釋。 –

3

將文件得到解析,否則你會看到源代碼,如果客戶不小心在這個網址結束?

通常,您將看到源代碼,因爲.bak擴展未註冊爲使用PHP進行解析。不用說,這是非常危險的!

是否依賴於服務器?

是的。可以配置服務器來解析這些文件,但它不是我知道的任何默認配置的一部分。

更好的解決辦法是做它倒過來:這取決於服務器配置filename.bak.php