Включение mod_rewrite на Amazon Linux

Включение mod_rewrite на Amazon Linux

Я пытаюсь включить mod_rewrite на экземпляре Amazon Linux. Мои директивы Directory выглядят так:

<Directory />
    Order deny,allow
    Allow from all
    Options None
    AllowOverride None
</Directory>

<Directory "/var/www/vhosts">
    Order allow,deny
    Allow from all
    Options None
    AllowOverride All
</Directory>

А далее в httpd.conf у меня есть LoadModuleдиректива:

... other modules...
#LoadModule substitute_module modules/mod_substitute.so
LoadModule rewrite_module modules/mod_rewrite.so
#LoadModule proxy_module modules/mod_proxy.so
... other modules...

Я закомментировал все модули Apache, которые не нужны Wordpress.

Тем не менее, когда я запускаю http restart и затем проверяю загруженные модули, /usr/sbin/httpd -lя получаю только:

[root@foobar]# /usr/sbin/httpd -l
Compiled in modules:
  core.c
  prefork.c
  http_core.c
  mod_so.c

Внутри виртуального хоста, содержащего сайт Wordpress, у меня есть файл, .htaccessсодержащий:

# 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

Файл .htaccess принадлежит apache, который является пользователем, под которым работает apache. apachectl -tКоманда возвращаетSyntax OK

Мой /etc/httpd/conf.d/vhosts.confвыглядит так:

<VirtualHost *:80>
     ServerAdmin [email protected]
     ServerName foobar.net
     ServerAlias www.foobar.net
     DocumentRoot /var/www/vhosts/foobar/
     ErrorLog /var/www/vhosts/foobar/logs/error.log
     CustomLog /var/www/vhosts/foobar/logs/access.log combined
</VirtualHost>

Что я делаю не так? Что мне проверить?

решение1

Директива LoadModule динамически загружает модуль.

Попробуйте выполнить команду RewriteEngine onна виртуальном хосте, а затем apachectl -tподтвердить, загружен ли модуль на самом деле.

решение2

Я только что запустил новый Amazon Linux и столкнулся с той же проблемой, и она Options FollowSymLinkбыла там, но следующую строку AllowOverride Noneпришлось изменить наAllowOverride All

решение3

Моя конфигурация была правильной, но мне нужно было

Options FollowSymLink

в объявлении DocumentRoot в httpd.conf для работы mod_rewrite.

решение4

Я нашел решение этой проблемы...

Я изменил AllowOverride Noneна AllowOverride all, ниже Options Indexes FollowSymLinksв файле конфигурации/etc/httpd/conf/httpd.conf

Спасибо!

Связанный контент