Ich habe verwendet:
%Vor% in meinem .htaccess
, das sich in public_html
Ordner befindet.
Wenn ich nun public_html/sub/index.php
starte, bekomme ich diesen Fehler:
Wie kann auto_prepend_file
flag verwendet werden, um eine Datei relativ zu .htaccess
file einzuschließen?
Die Datei muss in PHP include_path
sein. Sie müssen also entweder das Verzeichnis der Datei in der include_path
in der php.ini oder in der .htaccess mit einer php_value
-Anweisung angeben.
Wenn Sie die obige Methode in .htaccess verwenden, müssen Sie die include_path
von php.ini kopieren und die :/path_to/file_directory
hinzufügen, damit Sie keine bereits benötigten Includes verlieren.
Alternativ fügen Sie :/path/to/file_directory
zu include_path
direkt in der php.ini
Wenn Sie den include_path nicht ändern können, können Sie versuchen, einen relativen Pfad zum auto_prepend_file
anzugeben. Dies sollte funktionieren, da der gesendete Dateipfad identisch verarbeitet wird, als ob er mit require()
:
In Ihrem .htaccess
%Vor%Erstellen Sie als Nächstes 2 Dateien im Stammverzeichnis
1) /auto_append_file.php
%Vor%2) /auto_prepend_file.php
%Vor%Jetzt sollte es auf lokalen und Live-Servern unabhängig vom physischen Pfad oder der Website funktionieren, vorausgesetzt, dass jede Ihrer Websites die gleichen Dateinamen append.php und prepend.php verwendet.
Ich würde auch hinzufügen, dass Sie, wenn Sie die harten relativen Serverpfade nicht kennen (wie Shared Hosting und / oder PaaS, die dynamisch Pfade beim Neustart / Deploy generieren), dies tun können:
%Vor%Im Wesentlichen ist dies Pseudodynamische Methode / Hack / Workaround zum Erreichen eines .htaccess-relativen DOCUMENT_ROOT-Includes (was NICHT in Apache möglich ist) wie folgt:
%Vor%Zur Sicherheit, in prepend.php, ist es dann möglich, den Include-Pfad wie folgt zu deklarieren (zu den für die Anwendung passenden Pfaden):
%Vor%Kann auch wie folgt aussehen, wenn die letzten Verzeichnisse vorhersehbar sind:
%Vor%