Wie stelle ich den PHP-Include-Pfad über .htaccess ein?

8

Ich möchte den PHP-Include-Pfad auf ein anderes Verzeichnis setzen. Ich habe versucht, dies in eine .htaccess-Datei zu schreiben, aber das hat nicht funktioniert. Das einzige, was ich sehe, ist der Include-Pfad, den ich in httpd.conf eingestellt habe, aber nicht den, den ich hinzufügen wollte.

%Vor%

Was mache ich falsch? Ich habe a2enmod mod_php5 , aber es lief bereits, also nehme ich an, dass PHP5 bereits als Apache-Modul läuft.

[EDIT] In meiner vhost config habe ich folgendes:

%Vor%

Weitere Informationen ( phpinfo() ):

%Vor%

Grüße, Kevin

    
www.data-blogger.com 28.06.2011, 14:52
quelle

3 Antworten

7

Apache muss so konfiguriert sein, dass Einstellungen über .htaccess überschrieben werden können. Überprüfen Sie Ihre Apache-Konfigurationsdatei (httpd.conf) auf eine Überschreibung für Ihr Verzeichnis:

%Vor%

Fügen Sie dies in die vhost-Definition für Ihre Site ein.

Wenn dies eine globale Änderung ist, sollten Sie die Einstellung include_path in Ihrer Datei php.ini ändern, anstatt .htaccess zu verwenden.

Beide Änderungen erfordern einen Apache-Neustart.

BEARBEITEN :

Dies ist ein Zitat aus der Seite der Apache Core-Funktionen :

"Angenommen, der Dateiname ist /home/abc/public_html/abc/index.html. Der Server berücksichtigt jede von /, / home, / home / abc, / home / abc / public_html und / home / abc / public_html / abc in dieser Reihenfolge. Wenn in Apache 1.2 / home / abc berücksichtigt wird, stimmt der reguläre Ausdruck überein und wird angewendet. In Apache 1.3 wird der reguläre Ausdruck zu diesem Zeitpunkt im Baum überhaupt nicht berücksichtigt. Es wird erst berücksichtigt, wenn alle normalen s- und .htaccess-Dateien angewendet wurden. Dann passt der reguläre Ausdruck auf / home / abc / public_html / abc und wird angewendet. "

Ich denke, basierend auf diesen Informationen wird Ihre php_value include_path -Anweisung nach der .htaccess-Datei ausgewertet. Wenn dies der Fall ist, wird der Wert, den Sie für include_path in der .htaccess verwenden, überschrieben. Können Sie versuchen, die include_path -Zeile vorübergehend aus <Directory> zu entfernen, um diese Theorie zu testen?

    
George Cummins 28.06.2011, 14:55
quelle
1

hast du das in deinem PHP-Code versucht (oben auf deinem Code):

%Vor%     
benqus 28.06.2011 14:56
quelle
0

Sie können versuchen, chdir () in Ihrer PHP-Datei zu verwenden, um einen anderen Speicherort als Basisspeicherort für alle Dateifunktionen zu verwenden, einschließlich includes =)

    
Greenisha 28.06.2011 15:02
quelle