Habilitando mod_rewrite en Amazon Linux

Habilitando mod_rewrite en Amazon Linux

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 LoadModuledirectiva:

... 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 -lsolo 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 .htaccessque 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 -tcomando regresaSyntax OK

Mi /etc/httpd/conf.d/vhosts.confaspecto 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 onen un host virtual y luego apachectl -tconfirme si el módulo está realmente cargado o no.

Respuesta2

Acabo de iniciar un nuevo Amazon Linux y tuve el mismo problema y Options FollowSymLinkestaban allí, pero la siguiente línea AllowOverride Nonetuvo 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 Nonea AllowOverride all, a continuación Options Indexes FollowSymLinksen el archivo de configuración./etc/httpd/conf/httpd.conf

¡Gracias!

información relacionada