servidor mod_rewrite htaccess habilitar allowoverride php apache .htaccess mod-rewrite amazon-ec2

php - htaccess - mod_rewrite ubuntu server



Cómo habilitar.htaccess en amazon ec2 ejecutando ubuntu (3)

Tengo una instancia ejecutando ubuntu en ec2. Tengo este archivo .htaccess: -

Options +FollowSymlinks RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}/.php -f RewriteRule ^(.*)$ $1.php

Este archivo se encuentra dentro de la carpeta var/www/html . amazon-public-dns.com/index.php objetivo es lograr la carga de amazon-public-dns.com/index.php como amazon-public-dns.com/index .

Ahora, he intentado estos pasos:
1) Creando el rewrite.conf en /etc/apache2/mods-enabled y en el archivo poniendo la línea LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so . ( Referir esta respuesta )
2) Ejecutando el comando apache2 enable module rewrite . Además, en el archivo /etc/apache2/sites-available/000-default.conf y escribiendo esto al final: -

<Directory /var/www/html> Options Indexes FollowSymLinks MultiViews # changed from None to FileInfo AllowOverride All Order allow,deny allow from all </Directory>

Tenga en cuenta que esta respuesta le dice que edite el default . Pero, como ese archivo no estaba en mi caso, 000-default.conf archivo 000-default.conf .
Reinicié Apache como se lo dije. Pero el enlace amazon-public-dns.com/index me da un 404 :( Por favor, amazon-public-dns.com/index .

EDITAR : Puse un poco de basura al azar en el archivo htaccess. Pero el index.php no está dando ningún error interno del servidor 500, lo que significa que el archivo htaccess está siendo ignorado. Ahora en

https://help.ubuntu.com/community/EnablingUseOfApacheHtaccessFiles

, dicen que para habilitar htaccess edite este archivo - /etc/apache2/sites-available/default . PERO NO HAY TAL ARCHIVO


El archivo conf predeterminado /etc/apache2/sites-available/000-default.conf solo funciona si tiene un enlace simbólico en la carpeta de sitios habilitados.

Has hecho todos los pasos correctos. Puede ser un problema de sysmlink de la carpeta de sitios disponibles. Puede crear un enlace simbólico o actualizar 000-default.conf con AllowOverride None para AllowOverride All dentro del archivo /etc/apache2/sites-enabled/000-default.conf


Hoy me enfrenté a este mismo problema en una instancia de ubuntu EC2.

Esto funcionó para mí:

Coloque su configuración .htaccess dentro de la directiva <IfModule ..> :

<IfModule mod_rewrite.c> RewriteEngine on # your config here </IfModule>

No estoy seguro de si el servidor realmente tiene en cuenta /var/www/html . Intenta cambiar esto:

<Directory /var/www/html> # your current implementation AllowOverride All </Directory>

Para este:

<Directory /var/www> # your current implementation AllowOverride All </Directory>

Esta directiva ya debería estar en su archivo /etc/apache2/apache2.conf .

Si eso no funciona, trate de comentar su configuración, particularmente la parte que tiene allow,deny y allow from all

<Directory /var/www> # your current implementation AllowOverride All # Order allow,deny # try to comment this one out # allow from all # also this one </Directory>

Por último, compruebe que el módulo de reescritura a2enmod esté cargado como lo sugiere @ kamal-kumar y no olvide reiniciar apache.

Esto funcionó para mí, espero que esto ayude a alguien más :)


el siguiente comando funciona para mí ¡Genial!

sudo a2enmod rewrite sudo service apache2 restart

Para verificar los módulos cargados

sudo apache2ctl -M