Apache2 выдает 404 в drupal 7

Предисловие

Был у меня хостинг в французской компании ovh.com и как-то не заплатил я вовремя за vps и буквально за несколько дней, без предупреждения, они все под чистую удалили без возможности восстановления.

Я написал в саппорт с закономерным вопросом "чоза?!" На что, через 4 дня (невиданно высокая скорость ответа для этих лягушатников) получил примерно следующее: "Вы ля, не платить ля, и мы удалять ля. Теперь вы должны ля, снова через личный ля кабинет, добавлять новый vps ля!"

Разумеется первым делом я решил именно так и поступить! Но вдруг червячок сомнения начал покусывать: а нужен ли мне такой хостер? И козырнув в монитор, сказав "au revoir ля" я начал поиски другого хостера. Нашел дешевле и производительней.

 

Благо резервные копии сайтов у меня сливаются в облако и с этим проблем не было. Но вот после развертывания всего, один из сайтов, построенных на drupal 7, вел себя странно: Главную страницу он загружал нормально, а вот при переходе по любой ссылке apache плевал 404 page not found

Как-то раз я уже сталкивался с этой проблемой, но уже не помнил как решал, а так как я был слишком гордый, чтобы сразу написать подобный пост, пришлось вспоминать все что забыл. А дело-то плевое:

Такое поведение сайта происходит из-за отключенного модуля rewrite

Чтобы включить его нужно набрать в консоли:

sudo a2enmod rewrite

А если на веб-сервере присутствуют виртуальные хосты, то в конфигурационном файле

/etc/apache2/apache2.conf

Нужно поправить запись c AllowOverride none на AllowOverride ALL

<Directory /var/www/>             
Options Indexes FollowSymLinks
AllowOverride All                       
</Directory>                            

После чего, перезапускаем веб-сервер:

sudo systemctl restart apache2

И наслаждаемся.

Вам ведь не нужно напоминать, что вы все делаете на свой страх и риск, и автор статьи не несет ответственности за возможный причиненный ущерб? ;-) Экспериментируйте, ведь дорогу осилит идущий.