Как я могу включить mod_rewrite в apache в Ubuntu?

13

Как включить mod_rewrite с Apache в Ubuntu 10.04?

Я попытался скопировать rewrite.loadиз /etc/apache2/mods-availableв, etc/apache2/mods-enabledно это не сработало.

Натан Осман
источник

Ответы:

20

Попробуйте это:, sudo a2enmod rewriteа затем перезапустите apache.

Rwky
источник
4

Ответ Обсидиана на использование a2enmod - правильное решение. Метод Андола будет работать, но может сломаться при обновлении. То, что делает a2enmod, просто создает символическую ссылку, поэтому следующие два являются одинаковыми, оба правильными, решением:

  ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/

или

  a2enmod rewrite

Тем не менее, a2enmod будет искать другие типы файлов, некоторые имеют .conf и, возможно, другие. Нет причин не изучать эту команду, хотя важно знать, что происходит в фоновом режиме.

Копирование файла сделает любого будущего администратора очень недовольным вами. :)

Джастин Алан Райан
источник
Ну, это только для локального тестирования, так что ничего страшного. Но да, a2enmodвсе равно проще.
Натан Осман
2

На самом деле, будучи неправильным решением, копирование rewrite.load из ./mods-available/ в ./mods-enabled/ должно было сработать . Вы не забыли перезапустить свой Apache после этого?

В любом случае ./mods-enabled/ обычно должен содержать символические ссылки на соответствующие файлы в ./mods-available/ . Это, как упомянул Obsidian, проще всего обрабатывается командами a2enmod и a2dismod.

Помимо включения модуля, вам также нужно будет активировать переписывание. Прежде чем вы сможете написать свои RewriteCond : s и RewriteRule : s, в этом контексте конфигурации должен быть включен параметр « RewriteEngine On ».

andol
источник
Это тоже работает. Просто не забудьте установить правильные разрешения для символических ссылок в модах с поддержкой ... или вы будете вытягивать волосы.
Натан Осман