Como quitar las extensiones .php o .html de la URL usando htaccess

Categoría: Hospedaje web

Remover extensiones .PHP de la URL

Si te interesa tener las URLS de tu página web más limpias, puedes configurar tu cuenta para remover las extensiones de archivo .php o .html. Esto resulta en URLS más estéticas, por ejemplo cambiar de https://www.example.com/demo.php a https://www.example.com/demo, y algunos afirman que ayuda al SEO de tu página web (Optimización para buscadores).

Para lograrlo es cuestión de crear el archivo .htaccess (punto incluido y en caso que no exista ya) directamente en el directorio de public_html y poner el siguiente código ahí:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $1.php [NC,L]

Con este código, si un usuario visitara /demo en su navegador funcionaría, en realidad mostraría el archivo /demo.php, pero la URL se mantendría sin la extensión. Sin embargo con este código anterior, si se visita directamente /demo.php, no se redirecciona. Para lograr la redirección, se necesita agregar algo de código:

RewriteEngine on
RewriteCond %{THE_REQUEST} /([^.]+)\.php [NC]
RewriteRule ^ /%1 [NC,L,R]

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [NC,L]

Remover extensiones .HTML de la URL

Igualmente si requiere remover extensiones .HTML de la URL, el código es algo similar:

RewriteEngine on
RewriteCond %{THE_REQUEST} /([^.]+)\.html [NC]
RewriteRule ^ /%1 [NC,L,R]

RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^ %{REQUEST_URI}.html [NC,L]

¡Eso es todo! ahora puedes diseñar tu sitio con vínculos limpios de esta manera:

<a href="https://example.com/mipagina" title="mipagina">mipagina</a>

Conclusión

El archivo .htaccess es de mucha ayuda para limpiar nuestras URL y hacerlas más estéticas, pero programar en el archivo .htaccess es complicado, por lo que hay herramientas en línea que te pueden ayudar a configurarlo, por ejemplo: https://www.htaccesseditor.com/

¿Aún necesitas ayuda?

Si esta guía no resolvió tu caso, nuestro equipo te ayuda por ticket.