Увімкнення .htaccess файла для перезапису шляху (не працює)


17

Усі навчальні посібники кажуть мені редагувати: /etc/apache2/sites-available/defaultале цей файл для мене не існує. У цьому файлі я мав би відредагувати:

<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>

Як повинен виглядати файл і чи повинен я сам його створити?

У мене також є 000-default.confфайл, але і вищезгаданого «коду» немає.

Відповіді:


59

Для апаші версії 2.4 та пізнішої версії потрібно перейти

/etc/apache2/apache2.conf

Ви повинні відредагувати цей файл (у вас повинен бути дозвіл root). Змінити текст каталогів таким чином;

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

Тепер перезапустіть apache.

service apache2 restart

Сподіваюся, це спрацює.


Чи можете ви поясніть, що це робить? Як це пов'язане з .htaccess? Мій .htaccess взагалі не читається.
chx101

1
Тут важливий рядок AllowOverride All, це означає, що всі параметри можна встановити (переотримати) у .htaccessфайлах. Дивіться документи: httpd.apache.org/docs/2.4/mod/core.html#allowoverride
jacwah

18

Ubuntu 14.04 (і Apache 2.4) за замовчуванням DocumentRoot було змінено з / var / www на / var / www / html.

по-перше, увімкніть a2enmod

sudo a2enmod rewrite 

і

sudo service apache2 restart

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

додайте ці рядки в кінці

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

і

sudo service apache2 restart

1
Це рішення працює для мене, тому що мені потрібно ввімкнути mod_rewrite спочатку. Дуже дякую.
kishor10d

1
Це справді спрацювало для apache 2.4. Врятував мені день. Навіть після редагування maing apache2.conf .htaccess не працював, але таким чином він працював.
Файсал Сарфраз

9

Якщо ви не хочете повторювати ту саму конфігурацію під час кожного оновлення / оновлення

Найкращий спосіб:

Відредагуйте або створіть конфігураційний файл

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

Додайте

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

Увімкніть конфігураційний файл

sudo a2enconf httpd

Перезавантажте або перезавантажте Apache

sudo service apache2 restart

або

sudo service apache2 reload

Зроблено!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.