entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Reglas Rewrite en .htaccess no funcionan

Saludos a todos!
Tengo una pregunta sobre las reglas .htaccess
He buscado algunas instrucciones para el módulo rewrite de Apache pero al parecer no funcionan juntas, no se cuál es la razón. Aquí pongo el código:

#Activo módulo
RewriteEngine on

#Redirigir a https
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

#Ocultar a mostrar extensión
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php

#Evito listado de archivos con ausencia de index
Options -Indexes

El sitio funciona con subdominios (todos apuntados al servidor como registro A en los DNS) al ingresar por http://subdominio.dominio.com el código php lo redirige a una subcarpeta del servido.
Cuando dejo el .htaccess en producción el buscador me arroja un error: el sitio ha redireccionado muchas veces. Cuando elimino las condiciones y reglas para https:

#Redirigir a https
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

El sitio funciona. El problema es cuando están ambas reglas en el .htaccess (redirigir a https y eliminar la extensión php de la url)
Alguien sabe por qué?
Muchas gracias!

0voto

Peter comentado hace

¿El PHP que redirecciona a una subcarpeta, no esta en conjunto con tu .htaccess y solo esta el subdominio? ¿O todo es dentro del subdominio?

Para poder saber en dónde tienes el problema de redirección por favor explica el funcionamiento y estructura completo. Porque parece que hay algo en algún lado que no viene del .htaccess a no ser que se este cambiando entre subdominio y dominio, que ahí puede estar el problema.

Del subdominio en / tiene que redirigirlo al dominio en /
En el dominio la ruta / tiene que ir a tal
Ya esta instalado el certificado y hay que forzar https
Hay que etc...

Y mostrando el contenido de cada cosa en la explicación.

Subdominio
.htaccess y su contenido y el código PHP que redirige

Dominio principal
/ .htaccess y su contenido

Que intentas hacer con #Ocultar a mostrar extensión

Etc...

Así vemos el panorama global, se entiende y va a ser mas fácil detectar el error.

Saludos.

1 Respuesta

0voto

Peter Puntos147650

En tu código debes de tener definido el "home" de tu web en algún lado. ¿Lo tienes definido con https y sin www?

Prueba con esto:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE] 

Otra opción:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.ejemplo.com/$1 [R=301,L,NE]

A ver si te sirve alguna de las dos.

0voto

ericvonk comentado

Gracias Peter por tu respuesta.
Lamentablemente no me funciona. Debe existir un conflicto entre las Condiciones Rewrite o las Reglas Rewrite.

Con esta opción:

#Activo módulo
RewriteEngine on

#Redirigir a https
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

#Ocultar a mostrar extensión
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php

#Evito listado de archivos con ausencia de index
Options -Indexes

Los buscadores (Chrome, Firefox y Safari) me devuelven:
Esta página no funciona www.dominio.com te redireccionó demasiadas veces.
Intenta borrar tus cookies.
ERR_TOO_MANY_REDIRECTS

Con la segunda opción ocurre lo mismo.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


Actividad Reciente

...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta