Как включить mod_rewrite для xampp?
Я получаю 404 не найден при перезаписи мода в моем файле htaccess, обращаясь к localhost
Как я могу заставить это работать, все ссылки, которые я нашел, указывают мне, чтобы отредактировать файл в /etc/apache2/mods-enabled
для меня нет папки / etc / apache2, где тогда установлен apache?
используя xampp, http://www.apachefriends.org/en/xampp-linux.html
3 ответа
Вы задали вопрос для xampp в своем заголовке, но вы описали проблему apache2 в описании. Оба являются разными способами для запуска веб-сервера Apache.
Конфигурация xampp отличается от apache2. xampp содержит apache и mysql внутри него, если вы установили xampp, вам не нужно устанавливать их отдельно.
xampp не идентифицирует a2enmod или a2dismod, даже если вы установили xampp в ubuntu. Они (a2enmod или a2dismod) были настроены для apache2.
Конфигурация xampp очень похожа на httpd of centOS или fedora.
XAMPP устанавливается как /opt/lampp. Модули перезаписи включены по умолчанию в xampp. Вы можете проверить это в файле /opt/lampp/etc/httpd.conf. Там должна быть линия
LoadModule rewrite_module modules/mod_rewrite.so
там в файле httpd.conf, а также файл mod_rewrite.so доступен в модулях. Если строка закомментирована, это означает, что модуль отключен. Строка должна быть не закомментирована, а файл.so не должен быть поврежден, если вы хотите использовать правила перезаписи в xampp.
Не забудьте после установки в httpd.conf в этом разделе:
<Directory />
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
Вы должны включить mod_rewrite:
sudo a2enmod rewrite
и затем перезапустите apache:
sudo service apache2 restart
Чтобы убедиться, что вы можете проверить из phpinfo в Configuration
> apache2handler
> Loaded Modules
там должно быть написано mod_rewrite
а это значит mod_rewrite
включен. Надеюсь, это поможет.
Я не уверен, имеет ли XAMPP структуру "доступные сайты / включенные сайты", "доступные моды / включенные моды", которые используют пакеты Ubuntu Apache. Но если эти каталоги есть, я ожидаю, что они будут где-то в / opt / lampp / etc, потому что там находится основной конфигурационный файл httpd.conf (согласно http://www.apachefriends.org/en/xampp-linux.html).
Согласно некоторым (довольно устаревшим) записям в блоге на XAMPP, в этом httpd.conf может быть соответствующая директива LoadModule, что-то вроде
#LoadModule rewrite_module path/to/mod_rewrite.so
Если это все еще актуально, вам нужно удалить символ комментария (#) из этой строки. Кроме того, вам нужно включить локальное переопределение центральных настроек (например, из файла htaccess или vhost). Так что вам нужно искать
AllowOverride None
и изменить его на
AllowOverride All
Это может появиться в httpd.conf более одного раза, вам нужно настроить каждый раз. После следующего перезапуска Apache mod_rewrite должен работать.
В конце концов система mod-available / mod-enabled является "просто" удобным способом управления фрагментами конфигурации, такими как LoadModule выше, см., Например, /etc/apache2/mods-available/rewrite.load из Ubuntu. Пакеты Apache).