
Estou tentando habilitar o mod_rewrite em uma instância do Amazon Linux. Minhas diretivas de diretório são assim:
<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>
E mais abaixo no httpd.conf eu tenho a LoadModule
diretiva:
... 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...
Comentei todos os módulos do Apache não necessários ao Wordpress.
Ainda assim, quando emito reinicialização http e verifico os módulos carregados, /usr/sbin/httpd -l
recebo apenas:
[root@foobar]# /usr/sbin/httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
Dentro do host virtual que contém o site Wordpress eu tenho um .htaccess
contendo:
# 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
O .htaccess é de propriedade do Apache, que é o usuário sob o qual o Apache é executado. O apachectl -t
comando retornaSyntax OK
Meu /etc/httpd/conf.d/vhosts.conf
fica assim:
<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>
O que estou fazendo de errado? O que devo verificar?
Responder1
A diretiva LoadModule carregará um módulo dinamicamente.
Tente emitir RewriteEngine on
em um host virtual seguido de apachectl -t
para confirmar o tempo ou se o módulo está realmente carregado.
Responder2
Acabei de iniciar um novo Amazon Linux e tive o mesmo problema e eles Options FollowSymLink
estavam lá, mas a próxima linha AllowOverride None
teve que ser alterada paraAllowOverride All
Responder3
Minha configuração estava correta, mas eu precisava
Options FollowSymLink
na declaração do meu DocumentRoot em httpd.conf para que mod_rewrite funcione.
Responder4
Eu tenho a solução para esse problema.....
Eu mudei AllowOverride None
para AllowOverride all
, abaixo
Options Indexes FollowSymLinks
no arquivo de configuração/etc/httpd/conf/httpd.conf
Obrigado!