Как включить использование .htaccess в Apache на Ubuntu?

15

Я пытаюсь включить использование файла htaccess в Ubuntu 14.04 (Apache 2.4.7). Я знаю, что в этом вопросе много возможных дубликатов, но ни один из них мне пока не помог.

.htaccess

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>

Что еще нужно?

Дэвид ЗИП
источник
1
Директива AllowOverride All разрешает все параметры в файле .htaccess. 000-default.conf предполагает, что на вашем сервере есть только один сайт. Файл .htaccess не работает для вас? Есть ли на этом сервере более одного сайта?
closetnoc
В / var / www есть много папок, но виртуальные хосты не создаются. Папка / etc / apache2 / sites-available / содержит два файла: 000-default.conf и default-ssl.conf. Файл htaccess находится в / var / www /
David ZIP
Может быть, 'DocumentRoot / var / www /'? (косая черта)
Кова
Убедитесь, что / etc / apache2 / sites-enabled / содержит ссылку на 000-default.conf. Если вы измените файл /var/www/index.html, вы сможете увидеть изменения при просмотре сервера с помощью веб-браузера, верно?
Стивен Остермиллер

Ответы:

26

Первый шаг

Открыть файл как

sudo vim /etc/apache2/apache2.conf

Второй шаг

уберите знак комментария (#), если вы найдете его до этой строки (строка № 187 ок.)

AccessFileName .htaccess

Третий шаг

Затем найдите строку, где есть

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

заменить "Нет" на "Все"

AllowOverride All

И вуаля ... .htaccessработает !!

индиго
источник
3
изменения не вступили в силу, пока я не перезапустил apache Команда: перезапуск службы apache
Tahir Yasin
1
Я предлагаю, как упоминает @TahirYasin, перезапустить apache. sudo service apache2 restart,
www139
7

Активировать ModRewrite:

sudo a2enmod rewrite
sudo /etc/init.d/apache2 restart
Эдер Араужо де Соуза
источник
1
serviceКоманда теперь предпочтительный способ перезапустить Apache: sudo service apache2 restart.
Стивен Остермиллер
1

В моем случае изменения AllowOverride Noneк AllowOverride Allв /etc/apache2/sites-enabled/000-default.conf помог.

Все остальные файлы .conf уже были AllowOverride All.

Любовь Журба
источник
0
  1. В /etc/apache2/apache2.conf удалите знак комментария ( #) изAccessFileName .htaccess
  2. Имя вашего файла конфигурации Apache не является стандартным. Вы можете переименовать его в default.conf в Windows и переименовать в default в Linux. В ОС на базе Linux запустите этот код в терминале:

    sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/default
    
Гусейн
источник
Он назван нулями, так что он идет первым в алфавитном порядке. Если у вас есть файл default.conf, а затем создан сайт для anteater.com, тогда anteater становится хостом по умолчанию, поскольку он загружается первым. Держите 000, чтобы предотвратить такие проблемы. Имя файла conf не должно иметь никакого отношения к тому, работает или нет .htaccess.
Стивен Остермиллер
1
AccessFileName .htaccess уже не закомментирован. Выше ответ помог мне. Благодарю.
Дэвид Зип