Habilitar mod_rewrite en Amazon Linux


9

Estoy tratando de habilitar mod_rewrite en una instancia de Amazon Linux. Las directivas de Mi 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 emito el reinicio http y luego verifico los módulos cargados con /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 que .htaccesscontiene:

# 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 foobar@gmail.com
     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 verificar?

Respuestas:


5

La directiva LoadModule cargará un módulo dinámicamente.

Intente emitir RewriteEngine onen un host virtual seguido de apachectl -tpara confirmar el clima o no el módulo está realmente cargado.


Hola James, gracias por la respuesta. Agregué más detalles a la pregunta sobre lo que has señalado. RewriteEngine está activado y apachectl -t devuelve Syntax OK pero aún no funciona.
— Lorenzo

Lo siento, eliminé mi último comentario, estaba equivocado. Has tomado esto del archivo wordpress .htaccess, ¿no? ¿Tiene EnableOverride todo habilitado en su configuración de VHost?
— James Park-Watt

Hola James, sí, lo tomé de WP. Sí, AllowOverride en los subdirectorios de mi DocumentRoot está establecido en Todos
— Lorenzo

Intente esto: en la configuración del servidor, no en .htaccess, agregue las líneas RewriteEngine Ony RewriteRule ^.*$ http://www.wordpress.org/ [R]confirme si la reescritura está funcionando. Debe pasar todo el tráfico al sitio web de Wordpress.
— James Park-Watt

Eliminé el .htaccess de WP e hice los cambios que sugirió, pero no funciona.
— Lorenzo

5

Acabo de comenzar un nuevo Linux de Amazon y tuve el mismo problema y Options FollowSymLinkestaban allí, pero la siguiente línea AllowOverride Nonetuvo que cambiarse aAllowOverride All


3

Mi configuración era correcta pero necesitaba

Options FollowSymLink

en la declaración de mi DocumentRoot en httpd.conf para que mod_rewrite funcione.


1

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!

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.