mod_rewrite habilitar a2enmod .htaccess mod-rewrite url-rewriting file-exists

habilitar - .htaccess url-rewrite si el archivo no existe



a2enmod rewrite (3)

Debo hacer un pequeño truco para un sitio! La idea es:

  • si existe un archivo para una url requerida, entonces voy a esa url, sin hacer nada más;
  • si no existe un archivo para una url requerida, debo ir a file.php y luego hacer algo, ¡pero NO cambiar la url!

ejemplo:

www.misitio.es/page1.htm -> existe -> ir al archivo page1.htm

www.mysite.com/page2.htm -> NO existe -> vaya al archivo default.php pero con url "www.mysite.com/page2.htm"

Es posible hacer esto todo por .htaccess?


Implementar una regla de error 404. No requiere mod_rewrite:

ErrorDocument 404 /default.php


No se menciona aquí, pero FallbackResource es la nueva forma recomendada de manejar URLs no encontradas (404) . Ejemplo:

FallbackResource /not-404.php

Desde el manual de Apache :

Use esto para configurar un controlador para cualquier URL que no se asigne a nada en su sistema de archivos, y de lo contrario devolvería HTTP 404 (No encontrado).


RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^.*$ /default.php [L]