SSL .htaccess - Q simple

Nov 13 2020

Realmente odio este archivo ... ¡Acabo de pasar 6.5 horas tratando de resolver esto y con mi dislexia TDAH es simplemente imposible! Tengo un dominio para el que compré SSL (actualmente tengo que esperar a que se active el ssl para que WWW se active, pero por ahora el dominio sin WWW funciona, por ejemplo:

https://tomas.com

El .htaccess que tengo en root es actualmente:

RewriteEngine On
RewriteCond %{HTTP_HOST} tomas\.com [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://tomas.com/$1 [R,L]

Y el código anterior, de hecho, activa SSL, lo cual es bueno. La cuestión es que tengo algunos archivos en el dominio raíz, pero uno de ellos llamado es:

hello.php (ubicado en: "tomas.com/hello.php")

Si voy a: http://tomas.com/helloQuiero que muestre ese archivo (y en la barra de direcciones debería decir: "http://tomas.com/hello"). Antes del SSL, tenía este código a continuación y funcionó (pero ya no):

RewriteRule ^([^/]*)/?(.*)$ $1.php

¿Alguna idea de cómo se supone que debe verse todo el .htaccess? : /

También estoy tratando de FORZARLO para que NO use www (así que si lo hacen, debería ser redirigido a una URL que no sea WWW) ¡¡¡¡¡ Muchas gracias de antemano !!!!!!!!!!!!

Respuestas

1 MrWhite Nov 14 2020 at 03:02

Antes del SSL, tenía este código a continuación y funcionó (pero ya no):

RewriteRule ^([^/]*)/?(.*)$ $1.php

No estoy seguro de cómo "funcionó" esto antes, no está completo por sí mismo y hace más que simplemente agregar una .phpextensión. Necesita algo para evitar un bucle de reescritura, ya que hello.phptambién coincide con el patrón ^([^/]*)/?(.*)$.

En su lugar, intente lo siguiente, después de la redirección de HTTP a HTTPS.

RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule (.*) $1.php [L]

Esto primero verifica que el archivo con una .phpextensión de archivo exista antes de reescribirlo internamente.

Alternativamente , puede habilitar MultiViews si no está reescribiendo ninguna otra URL. Por ejemplo, en la parte superior de su archivo:

Options +MultiViews

¡Esto usa mod_negotiation para habilitar básicamente URL sin extensión para todo !