mod_rewrite está habilitado, pero no funciona


17

Estoy tratando de configurar una biblioteca de enrutamiento PHP. Dan este ejemplo para un archivo .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]

No pude hacer que esto funcionara, así que intenté habilitar mod_rewrite, pero dice "Módulo reescribir ya habilitado".

¿Por qué no funciona correctamente? ¡Gracias! Estoy ejecutando Ubuntu Precise 12.04 y apache2.2.22. (Comprobado por cualquier actualización)

EDITAR: Un par de detalles más, es una compilación vagabunda de PuPHPet, la reescritura debería estar habilitada.

Respuestas:


33

Debe permitir la sobrescritura.

<Directory "/path/to/document/root/">
  AllowOverride All
  Allow from All
</Directory>

55
Esto es innecesariamente permisivo. Solo AllowOverridees necesario para la configuración en cuestión. Allow from Allno tiene nada que ver con la pregunta y puede no ser apropiado para el entorno de @ randomdev.
Mark

1
<Directory "/path/to/document/root/">Olvidé cambiar /path/to/document/root/a la raíz de mi proyecto. ¡Gracias!
Abhishek

16

En primer lugar, establezca su configuración httpd en esto (la ruta puede diferir entre sí. En mi ubuntu se coloca en / etc / apache2 / sites-available / default):

DocumentRoot /var/www

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Order allow,deny
    allow from all
</Directory>

Después de eso, debe habilitar mod_rewrite con este comando:

sudo a2enmod rewrite

El último, reinicie su servicio apache :

sudo service apache2 restart

Para asegurarse de eso, puede verificarlo nuevamente desde phpinfo en Configuración> apache2handler> Módulos cargados, debe estar escrito mod_rewritey significa que mod_rewrite está habilitado.


¿Debería estar esto en un elemento host virtual?
jjxtra

Puede ver algunos ejemplos en el ejemplo de host virtual de Apache
metamorfos el

1

Tuve el mismo problema, pero las otras respuestas no me ayudaron. Esta línea al principio de .htaccessresolvió mi problema:

Options +FollowSymLinks -MultiViews
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.