
Estoy intentando habilitar mod_rewrite en una instancia de Amazon Linux. Mis directivas de directorio se ven así:
<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>
Y luego más abajo en httpd.conf tengo la LoadModule
directiva:
... 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...
He comentado todos los módulos de Apache que Wordpress no necesita.
Aún así, cuando ejecuto el reinicio de http y luego verifico los módulos cargados, /usr/sbin/httpd -l
solo obtengo:
[root@foobar]# /usr/sbin/httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
Dentro del host virtual que contiene el sitio de Wordpress tengo un archivo .htaccess
que contiene:
# 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
El .htaccess es propiedad de Apache, que es el usuario con el que se ejecuta Apache. El apachectl -t
comando regresaSyntax OK
Mi /etc/httpd/conf.d/vhosts.conf
aspecto es este:
<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>
¿Qué estoy haciendo mal? ¿Qué debo comprobar?
Respuesta1
La directiva LoadModule cargará un módulo dinámicamente.
Intente emitir RewriteEngine on
en un host virtual y luego apachectl -t
confirme si el módulo está realmente cargado o no.
Respuesta2
Acabo de iniciar un nuevo Amazon Linux y tuve el mismo problema y Options FollowSymLink
estaban allí, pero la siguiente línea AllowOverride None
tuvo que cambiarse aAllowOverride All
Respuesta3
Mi configuración era correcta pero necesitaba
Options FollowSymLink
en la declaración de mi DocumentRoot en httpd.conf para que mod_rewrite funcione.
Respuesta4
Tengo la solución para este problema.....
He cambiado AllowOverride None
a AllowOverride all
, a continuación
Options Indexes FollowSymLinks
en el archivo de configuración./etc/httpd/conf/httpd.conf
¡Gracias!