Wie kann ich die Verwendung von .htaccess in Apache unter Ubuntu aktivieren?


15

Ich versuche, die Verwendung der htaccess- Datei in Ubuntu 14.04 (Apache 2.4.7) zu aktivieren. Ich weiß, dass diese Frage viele mögliche Duplikate hat, aber keine von ihnen hat mir bis jetzt geholfen.

.zugang

ErrorDocument 404 /404.html

000-default.conf

<VirtualHost *:80>
AccessFileName .htaccess

ServerAdmin webmaster@localhost
DocumentRoot /var/www

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory /var/www/>
  Options Indexes FollowSymLinks Includes
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>
</VirtualHost>

Was wird noch benötigt?


1
Die AllowOverride All-Direktive lässt alle Optionen in der .htaccess-Datei zu. In der 000-default.conf wird davon ausgegangen, dass sich nur eine Site auf Ihrem Server befindet. Funktioniert die .htaccess-Datei nicht für Sie? Gibt es mehr als eine Site, die auf diesem Server gehostet wird?
Closetnoc

Es gibt viele Ordner in / var / www, aber es werden keine virtuellen Hosts erstellt. Der Ordner / etc / apache2 / sites-available / enthält zwei Dateien, 000-default.conf und default-ssl.conf. Die htaccess-Datei befindet sich in / var / www /
David ZIP

Vielleicht 'DocumentRoot / var / www /'? (
abschließender

Stellen Sie sicher, dass / etc / apache2 / sites-enabled / einen Link zu 000-default.conf enthält. Wenn Sie die Datei /var/www/index.html ändern, können Sie die Änderungen sehen, wenn Sie den Server mit einem Webbrowser anzeigen, oder?
Stephen Ostermiller

Antworten:


26

Erster Schritt

Datei öffnen als

sudo vim /etc/apache2/apache2.conf

Zweiter Schritt

Kommentarzeichen (#) entfernen, wenn Sie es vor dieser Zeile finden (Zeilennummer ca. 187)

AccessFileName .htaccess

Dritter Schritt

Dann finde die Linie, wo es ist

<Directory /var/www/>
     Options Indexes FollowSymLinks
     AllowOverride None
     Require all granted
</Directory>

ersetze "None" durch "All"

AllowOverride All

Und voila ... .htaccessfunktioniert !!


3
Die Änderungen wurden erst nach einem Neustart von Apache wirksam. Befehl: service apache
Tahir Yasin

1
Ich schlage vor, wie @TahirYasin erwähnt, Apache neu zu starten. sudo service apache2 restart.
www139


1

In meinem Fall den Wechsel AllowOverride Nonezu AllowOverride Allin /etc/apache2/sites-enabled/000-default.conf geholfen.

Alle anderen .conf- Dateien haben bereits gehabt AllowOverride All.


0
  1. Entfernen Sie in /etc/apache2/apache2.conf das Kommentarzeichen ( #) vonAccessFileName .htaccess
  2. Der Name Ihrer Apache-Konfigurationsdatei ist nicht Standard. Sie können es in Windows in default.conf und in Linux in default umbenennen . In Linux-basierten Betriebssystemen führen Sie diesen Code im Terminal aus:

    sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/default
    

Es wird mit den Nullen benannt, sodass es alphabetisch an erster Stelle steht. Wenn Sie eine default.conf-Datei haben und dann eine Site für anteater.com erstellen, wird anteater zum Standardhost, da es zuerst geladen wird. Bewahren Sie die 000 auf, um solche Probleme zu vermeiden. Der Name der conf-Datei sollte nichts damit zu tun haben, ob .htaccess funktioniert oder nicht.
Stephen Ostermiller

1
'AccessFileName .htaccess' ist bereits unkommentiert. Die obige Antwort hat mir geholfen. Vielen Dank.
David ZIP
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.