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.