Apache .htaccess funktioniert nicht auf einem neuen VPS

Apache .htaccess funktioniert nicht auf einem neuen VPS

Wir haben das Hosting von einem normalen Server auf einen VPS-Server umgestellt. Auf diesem VPS-Server läuft der Betrieb normal, die .htaccessDatei 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

.htaccessDie Nutzung in Apache httpd wird durch die AllowOverrideOption gesteuert. Obwohl die meisten Shared-Hosting-Anbieter alle .htaccessFunktionen für Kunden aktivieren, ist es tatsächlichstandardmäßig deaktiviertin Apache httpd mit Standardkonfiguration.

Andere Webserver wie Nginx unterstützen .htaccessdies ü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 .htaccessDateien, die zu 100 % nur Apache-Elemente sind.

Alsuser1686 gibt in seiner Antwort an, Ihr Hosting-Anbieter muss auf eingestellt AllowOverridesein, Alldamit .htaccesses funktioniert. Und ja, bei einer Standard-Apache-Installation AllowOverrideist es nicht auf eingestellt, Allobwohl so ziemlich 99 % der Apache-Webserver und Websites da draußen .htaccesseingestellt sein müssen, damit es funktioniert. Beispielsweise funktionieren Wordpress und Drupal (zwei der beliebtesten CMS-Systeme da draußen) überhaupt nicht, wenn es nicht .htaccesseingestellt 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.confzu 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.confaber heutzutage finde ich es persönlich sauberer, wenn es in den Konfigurationsdateien festgelegt wird, die geladen werdennachdas Main httpd.confist geladen /etc/httpd/conf.d/.

Aber im Allgemeinen AllowOverride Allmüssen die Einstellungen vorgenommen werden, damit es .htaccessfunktioniert.

verwandte Informationen