it-swarm.com.ru

Как включить mod_rewrite на Apache 2.4?

Я использую Wordpress и хотел включить функцию симпатичных URL, но они не работают, я думаю, что это из-за mod_rewrite, но я не знаю, как включить его в Apache 2.4 под CentOS 7 ...

Я уже попробовал это:

grep -i LoadModule /etc/httpd/conf/httpd.conf | grep rewrite

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

9
Jonathan Solorzano

Я нашел способ узнать, загружен модуль или нет, вот команда, чтобы вывести список включенных модулей:

apachectl -M | sort

В нем будут перечислены все включенные модули в алфавитном порядке.

Wordpress имеет .htaccess, но по умолчанию, где он позволяет rewrite_module для его использования:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Единственное, что мне нужно было сделать, это добавить это в файл vhost.conf по адресу /etc/httpd/conf.d/vhosts.conf

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

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

Спасибо...

19
Jonathan Solorzano
# nano /etc/httpd/conf/httpd.conf

находить 

follow (AllowOverride none) 

и измени его 

(AllowOverride All) 
9
reimi

Apache2 поставляется с исполняемыми файлами a2enmod и a2dismod, которые будут выполнять всю «грязную работу» символических ссылок в conf-файлах.

На дистрибутивах, основанных на Debian, обычное расположение - /etc/Apache/mods-available/. Вот файлы конфигурации .conf (если применимо) и файл .load для модуля с директивой Apache2 LoadModule. Модуль включается, если в /etc/Apache2/mods-enabled/ есть символическая ссылка на его файл .load.

Например, вы бы включили модуль Rewrite командой

$ a2enmod rewrite
6
marekful

В httpd.conf , найдите AllowOverride None и измените его на AllowOverride All , затем перезапустите Apache

2
Kent Aguilar