2011-04-09 65 views
0

可以使用.htaccess文件我躲在PHP的錯誤路徑可以使用.htaccess文件我躲在PHP的錯誤路徑

例子:

Notice: Undefined variable: hello in C:\xampp\htdocs\mysite\index.php on line 3 

我想用的.htaccess或打印東西要隱藏的路徑讓我知道,如果有一個錯誤,而不打印頁面的路徑:

Notice: Undefined variable: hello on line 3 

Notice: Undefined variable: hello 

There is error in your page 

編輯:

我把這個線在我的.htaccess 但我不能訪問我的網站。有錯誤「內部服務器錯誤」 我怎樣才能解決這個問題

# supress php errors 
php_flag display_startup_errors off 
php_flag display_errors off 
php_flag html_errors off 
php_value docref_root 0 
php_value docref_ext 0 
+2

你不應該表現出這樣的錯誤消息,您的訪客在所有的error_log!它們僅適用於開發人員。 – Gumbo 2011-04-09 14:06:47

+0

什麼是上下文?你不應該從PHP解釋器輸出錯誤/警告。如果有這樣的消息,你必須修復你的腳本。 – 2011-04-09 14:07:18

+0

您是否將PHP作爲模塊運行,並且您是否擁有「'AllowOverride Options'」或「'AllowOverride All'」特權?否則,你不能使用['php_flag'和'php_value'](http://php.net/configuration.changes)。 – Gumbo 2011-04-09 14:28:35

回答

4

PHP的錯誤消息並不意味着用戶,但對於開發者只。

因此,對於生產環境,您應該禁用display_errors以避免信息泄露:

注意的display_errors]是支持你的發展特點,不應該在生產系統中使用(例如連接到互聯網的系統)。

相反,你應該表現出一般錯誤消息,您的用戶不揭開內部的任何東西,只是記錄錯誤消息(見log_errorserror_log):

注意:你」強烈建議使用錯誤日誌代替生產網站上的錯誤顯示。

如果您確實想要修改PHP的錯誤消息,您可以使用set_error_handler來設置自定義錯誤處理程序。

另請參閱OWASP’s Development Guide on 「Error Handling, Auditing and Logging」瞭解更多信息。

+0

...查看我的#編輯 – faressoft 2011-04-09 14:27:12

+0

@faressoft:看到了。 :) – Gumbo 2011-04-09 14:29:29

2

你不能改變的消息:那些由PHP產生,這就是他們的方式。


但是,您可以阻止它們顯示給您的網站用戶 - 並且仍然會記錄它們,供您自己使用。
爲此,請參見:

  • display_errors:以防止錯誤顯示到頁面的輸出
  • log_errors:以表明錯誤應該被記錄到文件中
  • error_log:到指定的文件錯誤將被記錄到。


當然,這並不妨礙您固定告示/警告/錯誤的儘可能多的原因,儘可能;-)

0

擺脫所有無用的東西。

php_flag display_errors 0 

就夠了。

如果錯誤仍然存​​在,檢查服務器的錯誤消息