Angeben in .htaccess
Walther
- htaccess
1 Zucker0 Raketenwilli
Moin,
gelten Angaben wie
AddDefaultCharset UTF-8
php_flag display_errors On
im .htaccess im Root-Verzeichnis
auch für die Unterverzeichnisse oder muss man sie dort wiederholen?
Angaben in der .htaccess gelten für das Verzeichnis, in dem die .htaccess liegt, einschließlich aller Unterverzeichnisse.
Ein Blick in die Beschreibung der jeweiligen Einstellung klärt Ausnahmen.
Falls das funktioniert: Ja. Siehe Antwort von „Zucker“.
php_flag display_errors On
Aber die Idee ist eher subotimal, die funktioniert nicht überall. Wahrscheinlich suchst Du eine Lösung, damit Dein PHP auf dem Server und dem Testsystem unterschiedlich reagiert:
Mach das besser in purem PHP, das überlebt dann auch den Serverumzug.
<?php
### Safe as DOCUMENT_ROOT/host_settings.php
define( 'DEBUG', true ); # Testsystem
#define( 'DEBUG', false ); # Webserver
# ...
?>
Tipp! Diese Datei auf dem Server und Deinem Testsystem schreibschützen. z.B. mit chmod 444 host_settings.php
; Dann wird die nicht ganz so einfach versehentlich überschrieben.
Alternative:
Man kann das auch automatisch machen, z.B. anhand des Hostnames oder einer anderen stabilen Eigenschaft:
<?php
### Safe as DOCUMENT_ROOT/host_settings.php
if ($_SERVER['SERVER_NAME'] == 'localhost' ) {
define( 'DEBUG', true ); # Testsystem
} else {
define( 'DEBUG', false ); # Webserver
}
?>
<?php
### Safe as DOCUMENT_ROOT/lib/error_handling.php
if (! defined( 'MyDEBUG' ) ) {
## Wenn die Datei nicht da ist, dann hast Du halt „Pech“...
include ( $_SERVER['DOCUMENT_ROOT'].'/host_settings.php' );
}
if ( defined( 'MyDEBUG' ) && MyDEBUG ) {
## Settings für das lokale oder zeitbegrenzte Debugging:
error_reporting( E_ERROR | E_WARNING | E_PARSE | E_NOTICE );
ini_set( 'display_errors', 1 )
} else {
## Settings für den Normalbetrieb
error_reporting( E_ALL );
ini_set( 'display_errors', 0 )
}
und dann in jede Datei, bei der Du das brauchst (Also nicht in libs, die erben das, sondern nur in direkt per URL aufrufbaren Skripten):
<?php
### Falls Du nur für dieses Skript Fehler sehen willst, ist hier Deine Chance:
# define( 'DEBUG', true ); # spezieller Modus dieses Skript an/abschaltbar
require( $_SERVER['DOCUMENT_ROOT'] . '/lib/error_handling.php' );
### Dein Zeug ###
?>