¿Cómo puedo eliminar la extensión de archivo de la dirección de un sitio web?

Resuelto sumit asked hace 54 años • 11 respuestas

Estoy diseñando un sitio web. Quiero que la dirección de mi sitio web se parezca a la siguiente imagen:

Las extensiones de nombre de archivo como (PHP/JSP) están ocultas

No quiero que mi sitio web se vea como http://something.example/profile.php. Quiero .phpque se elimine la extensión de la barra de direcciones cuando alguien abra mi sitio web. En otras palabras, quiero que mi sitio web sea como:http://something.example/profile

Como segundo ejemplo, puede mirar la dirección del sitio web de Stack Overflow.

¿Cómo puedo hacer esto?

sumit avatar Jan 01 '70 08:01 sumit
Aceptado

Simplemente agregue un archivo .htaccess a la carpeta raíz de su sitio (por ejemplo, /home/domains/domain.example/htdocs/) con el siguiente contenido:

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

Más información sobre cómo funciona esto en estas páginas: guía mod_rewrite (introducción, uso), documentación de referencia

Igor avatar Jun 30 '2011 12:06 Igor

Primero, verifique que el módulo mod_rewrite esté instalado. Entonces, tenga cuidado de entender cómo funciona, mucha gente lo entiende al revés.

No ocultas URL ni extensiones. Lo que haces es crear una URL NUEVA que dirija a la anterior, por ejemplo

La URL para colocar en su sitio web seráyoursite.example/play?m=asdf

o mejor aún

yoursite.example/asdf

Aunque el directorio asdf no existe. Luego, con mod_rewrite instalado, colocas esto en .htaccess. Básicamente dice, si la URL solicitada NO es un archivo y NO es un directorio, diríjala a mi script:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /play.php [L]

Casi listo: ahora sólo tienes que escribir algunas cosas en tu script PHP para analizar la nueva URL. Desea hacer esto para que los ANTIGUOS también funcionen; lo que debe hacer es mantener un sistema mediante el cual la variable sea siempre exactamente la misma O crear una tabla de base de datos que correlacione la "URL compatible con SEO" con la identificación del producto. Un ejemplo podría ser

/Some-Cool-Video (que equivale al ID del producto asdf)

¿La ventaja de esto? Los motores de búsqueda indexarán las palabras clave "Algún video interesante". ¿asdf? ¿Quién va a buscar eso?

No puedo darte detalles sobre cómo programar esto, pero toma la cadena de consulta y quita el final.

yoursite.example/Some-Cool-Video

se convierte en "asdf"

Luego establezca la variable m en m=asdf.

Entonces ambas URL seguirán dirigiéndose al mismo producto.

yoursite.example/play.php?m=asdf
yoursite.example/Some-Cool-Video

mod_rewrite también puede hacer muchas otras cosas importantes, búsquelo en Google y actívelo en su servidor (probablemente ya esté instalado).

Shiv Singh avatar Sep 28 '2013 05:09 Shiv Singh