Knowledgebase:Portal:Hosting
Contents
Wichtige Bereiche
PHP-Versions Weiche via .htaccess
Bei einigen Hostings (z.B. Hoststar) gibt es mehrere installierte PHP Versionen, wobei mittels .htaccess Datei die gewünschte Engine für einen Dateityp zugewisesn werden kann. Folgendes Beispiel ist gültig für hoststar.ch Hostings (aktiviert PHP CGI v5.2)
Action php /cgi-php52/php AddHandler php52 .php
404-Errors umleiten via .htaccess
Folgende Zeile in .htaccess schreiben:
ErrorDocument 404 /index.php
Domain Umleitungen mittels .htaccess
Was ist mod_rewrite?
Mod_rewrite ist ein Modul des Apache Webservers. Das Modul mod_rewrite ist vielseitig einsetzbar, besonders mächtig ist es auch im Zusammenhang mit der Suchmaschinenoptimierung und Weiterleitungen von bestimmten Abfragen. Die folgenden Links zeigen anhand vieler Beispiele, wie Weiterleitungen und andere hilfreiche Dinge mittels .htaccess und mod_rewrite eingerichtet werden können.
- http://sw-guide.de/webdesign-und-entwicklung/htaccess-mod_rewrite-fuer-cms-und-blog/
- http://board.gulli.com/thread/708666-apache-modrewrite-subdomain-weiterleitung/
- http://www.skoom.de/tutorials/htaccess/moved-permanent-redirect-301.xtc
Beispiel: Domainumleitung bei Mehrsprachigkeit
Beim Aufruf einer bestimmten Domain soll der Inhalt der Sprache (langId=3) angezeigt werden.
RewriteCond %{HTTP_HOST} ^domain.tld$ [NC,OR] RewriteCond %{HTTP_HOST} ^www.domain.tld$ [NC] RewriteRule ^.*$ http://www.domain-neu.tld/index.php?%{QUERY_STRING}&langId=3 [R=301,L,NC]
Domainspezifisch umleiten in ein Unterverzeichnis
Situation: Man hat eine oder mehrere Domains als Alias eingerichtet, möchte aber auf den zusätzlichen Domains Inhalt aus einem Unterverzeichnis präsentieren, anstatt vom Hauptverzeichnis. Für jede Domain mit anderem Inhalt kann man den folgenden Block anpassen und in .htaccess einfügen.
# Rewrite-Engine einschalten RewriteEngine On # Domainnamen, die umgeleitet werden sollen. Oder-verknüpfte # Bedingungen dank dem [OR] für mehrere Domains mit gleichem Inhalt. RewriteCond %{HTTP_HOST} andere-domain.ch [OR] RewriteCond %{HTTP_HOST} anderedomain.ch # Wir wollen nur umleiten, wenn wir noch nicht umgeleitet # wurden. Sonst gibts ne Endlosschlaufe und laaaange URLs! RewriteCond %{REQUEST_URI} !(andere-domain) # Alles in der Klammer wird hinten wieder angehängt. So wird # /index.php zu /andere-domain/index.php. [L], damit nicht # weiter "rewrite"d wird. RewriteRule ^(.*)$ /andere-domain/$1 [L]
Keine Berechtigungen mittels FTP
PHP wird meistens als Apache/Webserver-Modul mod_php ausgeführt. Dies führt dazu, dass Dateien bzw. Verzeichnisse, welche via PHP erstellt (mittels Contrexx CMS) wurden dem Webserver-Benutzer "apache" (UID: 48) zugeteilt werden. Wenn Sie nun via FTP auf diese Daten zugreifen wollen, erhalten Sie eine Berechtigungsfehlermeldung. Der FTP-Benutzer befindet sich in einer anderen Gruppe und hat somit standardmässig keine Rechte auf die via PHP erstellten Daten.
Um nun den Zugriff via FTP zu ermöglichen, müssen die Rechte der entsprechenden Dateien/Verzeichnisse auf 777 geändert werden. Dies muss auch via PHP erfolgen. Sie können dazu den folgenden einfachen PHP File Manager verwenden. Er besteht aus 1 Datei und sollte in einem eigenen Verzeichnis installiert werden (damit diese geschützt werden kann): PHP File Manager
Danach können Sie die Rechte via Button "Permissions" auf 777 ändern.
Startreihenfolge ändern
Damit beispielsweise die index.html Datei vor der index.php Datei geladen wird, kann der folgende .htaccess Datei Eintrag verwendet werden.
DirectoryIndex index.htm index.php
Hosting liefert Dateien nicht aus / 406 HTTP Status Code
Wird beim Anfordern einer Datei nicht deren Inhalt, sondern die HTTP Statusmeldung 406 zurück gegeben, so kann es sein, dass die angeforderte Datei von mod_security gesperrt ist.
Um dies zu umgehen, muss mod_security deaktiviert werden. Erstellen Sie dazu eine .htaccess Datei im Verzeichnis, in welchem sich die betroffene Datei befindet und fügen Sie den folgenden Inhalt ein:
SecFilterEngine Off
Zeichensatz der HTML Dokumente erzwingen
Wenn der Webserver Dokumente in einem falschen Zeichensatz ausgibt, kann mittels einem kleinen Trick der korrekte Zeichensatz erzwungen werden. Voraussetzung ist, dass PHP vorhanden ist. Das folgende Beispiel erzwingt den Webserver, dass HTML Dateien (.htm/.html) im Zeichensatz ISO-8859-1 ausgegeben werden. Erstellen Sie dazu eine .htaccess Datei mit dem folgenden Inhalt auf dem Server:
AddType application/x-httpd-php .htm .html php_value default_charset ISO-8859-1