Включение файла .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файл, но вышеприведенного «кода» там тоже нет.

InControl
источник

Ответы:

59

Для Apache версии 2.4 и выше, вы должны перейти к

/etc/apache2/apache2.conf

Вы должны отредактировать этот файл (у вас должны быть права суперпользователя). Измените текст каталога следующим образом;

<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
alicanozkara
источник
1
Это решение работает для меня, потому что мне нужно сначала включить mod_rewrite. Большое спасибо.
Кишор 10
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

Это сделано!

zatamine
источник