Włączanie pliku .htaccess w celu przepisania ścieżki (nie działa)

17

Wszystkie samouczki każą mi edytować: /etc/apache2/sites-available/defaultale ten plik nie istnieje dla mnie. W tym pliku musiałbym edytować:

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
#AllowOverride All
#AllowOverride AuthConfig FileInfo Indexes Limit Options=All, MultiViews        
Order allow,deny
allow from all </Directory>

Jak powinien wyglądać plik i czy powinienem go utworzyć samodzielnie?

Mam też 000-default.confplik, ale powyższego „kodu” też tam nie ma.

kontrolowany
źródło

Odpowiedzi:

59

W przypadku apache w wersji 2.4 i nowszych musisz przejść do

/etc/apache2/apache2.conf

Musisz edytować ten plik (powinieneś mieć uprawnienia roota). Zmień tekst katalogu w ten sposób;

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

Teraz uruchom ponownie apache.

service apache2 restart

Mam nadzieję, że to działa.

Nabil
źródło
Czy możesz wyjaśnić, co to robi? Jak to się łączy z .htaccess? Mój .htaccess w ogóle się nie czyta.
chx101
1
Ważną kwestią jest to AllowOverride All, że oznacza to, że wszystkie ustawienia można ustawić (przesłonić) w .htaccessplikach. Zobacz dokumenty: httpd.apache.org/docs/2.4/mod/core.html#allowoverride
jacwah
18

Ubuntu 14.04 (i Apache 2.4) domyślny DocumentRoot został zmieniony z / var / www na / var / www / html.

najpierw włącz a2enmod

sudo a2enmod rewrite 

i

sudo service apache2 restart

sudo nano /etc/apache2/sites-enabled/000-default.conf

dodaj te linie na końcu

<Directory /var/www/html>
    AllowOverride All
 </Directory>

i

sudo service apache2 restart
alicanozkara
źródło
1
To rozwiązanie działa dla mnie, ponieważ najpierw muszę włączyć mod_rewrite. Wielkie dzięki.
kishor10d
1
To naprawdę działało dla Apache 2.4. Uratowałem mój dzień. Nawet po edycji maing apache2.conf .htaccess nie działał, ale działał w ten sposób.
Faisal Sarfraz
9

Jeśli nie chcesz powtarzać tej samej konfiguracji przy każdej aktualizacji / aktualizacji

Najlepszym sposobem jest:

Edytuj lub utwórz plik konfiguracyjny

/etc/apache2/conf-available/httpd.conf

Dodaj

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

Włącz plik konfiguracyjny

sudo a2enconf httpd

Uruchom ponownie lub przeładuj Apache

sudo service apache2 restart

lub

sudo service apache2 reload

Zrobione!

zatamine
źródło