Url sin extensión en IIS
A veces es importante eliminar u ocultar la extensión de archivo de los scripts que utiliza. La seguridad por oscuridad podría ser esa razón, si no desea que otros sepan qué lenguaje de script está utilizando para su sitio web o para hosts de sitios estáticos. Este ejemplo ocultará la extensión .php
utilizando el módulo de reescritura de URL de IIS, en una web lista para usar.config & .htaccess ejemplo.
- ¿Por qué es necesario ocultar extensiones de archivo en las URL?
- Ocultar .extensión php con Módulo de reescritura de URL en IIS
- Ocultar extensión para solicitudes que ya contienen a .extensión php
- Emule Apache Multiviews en IIS usando a .archivo htaccess y Helicon Ape
- Eliminar .extensión php con .htaccess de URLs
¿Por qué es necesario ocultar extensiones de archivo en las URL?
No soy fan de la seguridad por oscuridad, y nunca me he encontrado con esto como resultado de un escaneo de seguridad.
La seguridad por oscuridad es una razón para ocultar la extensión de archivo en las URL, si no desea que otros sepan qué idioma de script está utilizando para su sitio web. La optimización de motores de búsqueda (SEO) es otra razón válida, o tal vez solo desee ocultar la extensión de archivo sin una razón aparente.
Tampoco hay ningún beneficio para el SEO, por lo que sé.
Sin embargo, puede usar esta técnica para acortar un poco las URL. Elimina de cuatro a cinco caracteres de la URL («.php»,».HTML», «.aspx»). Y algunos dicen que un sitio web funciona más rápido porque un servidor web puede hacer coincidir las URL sin extensiones a carpetas (directorios) más rápido que las URL con una extensión a un archivo.
Algunos dicen. No tengo datos ni más información al respecto.
Ocultar .extensión php con Módulo de reescritura de URL en IIS
Aquí hay un ejemplo de Módulo de reescritura de URL de IIS para que lo oculte .extensión php en URLS.
Esta técnica también se conoce como Multiviews o Negociación de contenido en Apache, y otros la llaman URL sin extensión. Vea a continuación un ejemplo para usar .htaccess en IIS.
Acerca de Multiview, o la negociación de contenido:
el efecto de La Multiview es como sigue: si el servidor recibe una solicitud de /algunos/dir/foo, si /algunos/dir ha Multiview habilitado y /algunos/dir/foo no existe, el servidor lee el directorio en busca de archivos llamado foo.* , y efectivamente falsifica un mapa de tipos que nombra a todos esos archivos, asignándoles los mismos tipos de medios y codificaciones de contenido que tendría si el cliente hubiera pedido uno de ellos por nombre. A continuación, elige la mejor combinación para los requisitos del cliente.
Coloque la siguiente reescritura en un archivo web.config
para ocultar el .extensión php en su URL. Bueno, el ejemplo realmente no se oculta .php desde la URL, pero esto le permite usar URL sin extensión como www.example.com/index
.
El módulo de reescritura de URL de IIS agrega la parte .php
a la URL en segundo plano.
Code language: HTML, XML (xml)
Ocultar extensión para solicitudes que ya contienen a .extensión php
Un ejemplo más extendido es redirigir todas las solicitudes con .php en la URL de su variante sin extensión. Por lo tanto, cuando un visitante entra a través de /index.php
, la extensión se elimina y se le dirigirá a /index
.
Nuestra regla de reescritura mapea esa solicitud final de nuevo al índice.php sin mostrar la extensión.
Code language: HTML, XML (xml)
Pruebe siempre estos ejemplos antes de ponerlos en producción.
Emule Apache Multiviews en IIS usando a .archivo htaccess y Helicon Ape
Si lo utiliza .htaccess en IIS puede crear el mismo efecto Multiviews para ocultar el .extensión php. Para que esto suceda, debe declarar algunas condiciones de reescritura y reglas de reescritura (RewriteCond
y RewriteRule
). La parte interesante es que esto también debería funcionar con Linux, Apache y mod_rewrite, ¡haciendo que esta solución sea multiplataforma!
Multiviews .ejemplo de htaccess
En su archivo .htaccess
, agregue la siguiente configuración de reescritura:
Code language: Apache (apache)
.explicación de las reglas de htaccess:
El primer bloque de código utiliza dos comprobaciones RewriteCond
para verificar si la URL es un archivo o una carpeta. Esto es más completo, claro y rápido que crear una excepción para cada tipo de archivo posible. RewriteRule
reescribe la URL, que en su mayoría no contiene una extensión de archivo, a un archivo PHP con ese nombre.
El patrón ^(+)(?:/(.+))?$
se explica de la siguiente manera:
- Los caracteres adjuntos
^
y$
marcan el principio y el final de la cadena; lo que evita que la regla a veces coincida solo con una parte de la URL - El grupo
(+)
coincida con el nombre del archivo PHP como. Y encuentra todos los caracteres hasta una barra, o el final de la cadena
- El bloque
(?:/(+).)?
intenta encontrar una barra, seguido de otros caracteres, y lo guarda como
El reemplazo .php?(?2p=)
utiliza una referencia condicional:
- La cadena de consulta se rellena con
p=
si existe.
Finalmente, se agrega una regla que oculta el .extensión php.
Esto evita que un motor de búsqueda encuentre contenido duplicado y, por lo tanto, evita una penalización por la posición de su sitio en los resultados de búsqueda.
También hay otras formas.
Eliminar .extensión php con .htaccess de URLs
Para eliminar el .extensión php desde una URL con .htaccess, puede guardar lo siguiente en un nuevo .archivo htaccess:
Code language: Apache (apache)
Code language: Apache (apache)
O usar vistas múltiples:
Code language: Apache (apache)
Esto elimina la extensión haciendo que las URL sean más amigables para el usuario y, algunos dicen, para los motores de búsqueda SEO. Usa lo que funcione mejor para ti y agrega una meta etiqueta canónica en tu encabezado HTML para evitar contenido duplicado (cuando sea apropiado).
Hola, mi nombre es Jan. No soy un hacker, programador, desarrollador o gurú. Soy simplemente un administrador de sistemas, haciendo mi trabajo diario en Vevida ( parte de Yourhosting) / CLDIN.
Si desea una experiencia de sitio web más libre de publicidad y seguimiento, por favor, respáldeme con una pequeña donación (backme.org) o Paypal.