Algunos sitios no muestran extensiones como .html o .php, etc. ¿Cómo es eso posible y cómo se hacen?

Podemos eliminar extensiones de archivo usando el archivo .htaccess

¿Qué es un archivo .htaccess?

Un archivo .htaccess es un archivo ASCII simple que crea con un editor de texto como Notepad ++ o TextMate. Proporciona una forma de realizar cambios de configuración por directorio.

Tenga en cuenta que .htaccess es la extensión del archivo. No es file.htaccess, es simplemente .htaccess.

Los archivos .htaccess afectan el directorio en el que están ubicados y todos los subdirectorios. Por ejemplo, si hay un archivo .htaccess ubicado en su directorio raíz de http://yoursite.com, afectaría a http://yoursite.com/content/, http://yoursite.com/content/images/, etc.

Es importante recordar que esto se puede evitar , por ejemplo, si no desea que ciertos comandos .htaccess afecten a un directorio específico, colocando un nuevo archivo .htaccess dentro del directorio que no desea que se vea afectado por los cambios, y eliminando los comandos específicos del nuevo archivo .htaccess que no desea afectar a este directorio.


Eliminar extensiones

Para eliminar la extensión .php de un archivo PHP, por ejemplo http://yoursite.com/wallpaper.php a http://yoursite.com/wallpaper/, debe agregar el siguiente código dentro del archivo .htaccess:

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

Si desea eliminar la extensión .html de un archivo html, por ejemplo http://yoursite.com/wallpaper.html a http://yoursite.com/wallpaper, simplemente tiene que modificar la última línea del código anterior para que coincida el nombre del archivo:

RewriteRule ^([^\.]+)$ $1.html [NC,L]

¡Eso es! Ahora puede vincular páginas dentro del documento HTML sin necesidad de agregar la extensión de la página. Por ejemplo:
fondo de pantalla


Agregar una barra inclinada al final

  RewriteEngine On
 RewriteCond% {REQUEST_FILENAME}! -F
 RewriteRule ^ ([^ /] +) / $ $ 1.php
 RewriteRule ^ ([^ /] +) / ([^ /] +) / $ /$1/$2.php
 RewriteCond% {REQUEST_FILENAME}! -F
 RewriteCond% {REQUEST_FILENAME}! -D
 RewriteCond% {REQUEST_URI}! (\. [A-zA-Z0-9] {1,5} | /) $
 RewriteRule (. *) $ / $ 1 / [R = 301, L] 

Básicamente en apache, supongo que podrías declarar alias.

No sé cómo se hace en otros marcos, pero creo que es el mismo concepto. Uso tornado para mis proyectos de desarrollo web, el mismo marco de trabajo en el que se basa.

En tornado, usted define manejadores para manejar rutas URL como / home o / contact y luego hace que clases específicas en su programa manejen estas rutas como si pudiera mapear la clase HomeHandler para manejar / home y así sucesivamente

Dentro de la clase, usted define los métodos get y post, que es lo que hace el servidor cuando tiene una solicitud get o post en esa ruta. Dentro de la función, puede hacer que la función represente páginas HTML, etc., y esto no redirigirá, por lo que no habrá ningún cambio en la URL y seguirá estando en / home mientras sigue representando algo como home.html

Espero que esto tenga sentido

se puede hacer usando

RewriteEngine, RewriteRule, RewriteCond, etc. en el archivo .htaccess

Puede leer este artículo para comprender fácilmente .htaccess
Cómo usar el archivo .htaccess