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.

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.


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

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!

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.