
Wir haben das Hosting von einem normalen Server auf einen VPS-Server umgestellt. Auf diesem VPS-Server läuft der Betrieb normal, die .htaccess
Datei wird jedoch vom VPS nicht ausgeführt oder gelesen.
Auch können das einfache Aufgaben sein, wie etwa eine Weiterleitung 301 wie zum Beispiel der Code: ( Redirect 301 /url.html domain.com/urlnova.html
).
Aber als wir es auf dem lokalen Apache-Server (XAMPP) getestet haben, funktionierte es normal, und auch auf dem vorherigen Hosting.
Wir haben die Datei von Grund auf neu erstellt, aber sie funktioniert immer noch nicht. Wir haben mit dem VPS-Hosting-Support gesprochen, in diesem Fall Hostinger, aber sie konnten uns nicht helfen.
Gibt es eine Möglichkeit, es zu aktivieren .htaccess
?
Antwort1
.htaccess
Die Nutzung in Apache httpd wird durch die AllowOverride
Option gesteuert. Obwohl die meisten Shared-Hosting-Anbieter alle .htaccess
Funktionen für Kunden aktivieren, ist es tatsächlichstandardmäßig deaktiviertin Apache httpd mit Standardkonfiguration.
Andere Webserver wie Nginx unterstützen .htaccess
dies überhaupt nicht.
Antwort2
Stellen Sie zunächst fest, ob Apache tatsächlich der Webserver ist, der auf Ihrem neuen VPS läuft. Soweit Sie wissen, läuft auf dem Server Nginx, da viele Hosting-Anbieter Apache und Nginx als ähnliche Webserver betrachten, obwohl dies nicht der Fall ist. Insbesondere bei .htaccess
Dateien, die zu 100 % nur Apache-Elemente sind.
Alsuser1686 gibt in seiner Antwort an, Ihr Hosting-Anbieter muss auf eingestellt AllowOverride
sein, All
damit .htaccess
es funktioniert. Und ja, bei einer Standard-Apache-Installation AllowOverride
ist es nicht auf eingestellt, All
obwohl so ziemlich 99 % der Apache-Webserver und Websites da draußen .htaccess
eingestellt sein müssen, damit es funktioniert. Beispielsweise funktionieren Wordpress und Drupal (zwei der beliebtesten CMS-Systeme da draußen) überhaupt nicht, wenn es nicht .htaccess
eingestellt und ausgeführt wird.
Dies ist beispielsweise eine Anweisung, die unten in der Standarddatei festgelegt werden kann, um das Arbeiten in jedem beliebigen Verzeichnis /etc/httpd/conf/httpd.conf
zu ermöglichen ..htaccess
/var/www/html
<Directory "/var/www/html">
Options FollowSymLinks
AllowOverride All
</Directory>
Es kann auch in einer lokalen Apache-Konfigurationsdatei in einem Pfad wie diesem festgelegt werden:
/etc/httpd/conf.d/zzzz_local.conf
Früher habe ich solche Sachen am Ende angehängt, /etc/httpd/conf/httpd.conf
aber heutzutage finde ich es persönlich sauberer, wenn es in den Konfigurationsdateien festgelegt wird, die geladen werdennachdas Main httpd.conf
ist geladen /etc/httpd/conf.d/
.
Aber im Allgemeinen AllowOverride All
müssen die Einstellungen vorgenommen werden, damit es .htaccess
funktioniert.