Evite el encadenamiento de redireccionamientos para https sin www en el archivo .htaccess.
Después de una búsqueda interminable en Google y varios foros, no puedo encontrar un método para redireccionar un sitio correctamente sin ninguna cadena. ¿Es posible redirigir a una única URL y evitar las cadenas? A continuación se muestra el código que estoy usando en este momento:
RewriteCond %{HTTP<em>USER</em>AGENT} libwww-perl.*
RewriteRule .* – [F,L]
RewriteCond %{REQUEST<em>FILENAME} !-f
RewriteRule [^/]$ %{REQUEST</em>URI}/ [L,R=301,NE]
RewriteCond %{HTTP<em>HOST} !^www.
RewriteRule ^(.*)$ https://www.%{HTTP</em>HOST}/$1 [R=301,L]
En este momento parece generar 2 o 3 redirecciones. Por ejemplo, `http://example.co.uk/example-page/` se redirige a:
- `http://www.example.co.uk/example-page/`
- `https://www.example.co.uk/example-page/`
O si no incluye una barra diagonal final `http://example.co.uk/example-page`, se va a:
- `http://example.co.uk/example-page/`
- `http://www.example.co.uk/example-page/`
- `https://www.example.co.uk/example-page/`
¿Es posible simplemente ir directamente a `https://www.example.co.uk/example-page/` sin importar si incluimos o no una barra diagonal final, si incluimos o no www o http? ¿Cuál es la mejor forma de escribir esto?
Mi conocimiento de archivos .htaccess
es muy limitado, pero tengo muchas ganas de aprender cómo funciona todo esto y cómo se puede lograr.
davy.ai
Sí, es posible redirigir a una única URL sin cadenas. Aquí está el código modificado que lo logra:
Este código utiliza tres
RewriteCond
para determinar si la solicitud es HTTP, si la URL no incluye www. y capturar el nombre de dominio. La siguienteRewriteRule
luego redirige a `https://www.%1/$1` que combina el nombre de dominio capturado y la ruta actual.Además, elimina barras diagonales finales y las agrega si faltan. Además, excluye las solicitudes de archivos con ciertas extensiones para que no se redireccionen.
Este código debería redirigir a `https://www.example.co.uk/example-page/` sin importar si la URL contiene una barra diagonal, incluye www. o es HTTP.