Tengo una página con una URL como esta:
https://example.com:3000/newsite
pero quiero poder acceder desde aquí:
https://example.com/newsite
y enmascare también la URL para que siempre muestre todo como esto antes del último/
Lo intenté así:
RewriteRule ^:3000/newsite/?$ /site/
pero no funcionó. ¿Por qué?
Todo .htaccess
se ve así porque ya tengo otras reglas que deben permanecer iguales:
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(jpeg|jpg|gif|png)$ /public/404.php [NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L] <---everything up to this point has to stay the same
RewriteRule ^:3000/newchat/?$ /chat/
</IfModule>
Respuesta1
RewriteRule ^:3000/newsite/?$ /site/
No puede simplemente "eliminar" el número de puerto de la URL solicitada de esta manera (con una reescritura interna).
Para hacer lo que solicita, será necesario configurar un proxy inverso (lo que probablemente requiera cambios en la configuración del servidor), pero aún así deberá cambiar las URL de su sitio para eliminar el número de puerto de todos los enlaces internos.
Sin embargo, para configurar el proxy inverso (desde el puerto 443 (HTTPS) al puerto 3000 en el que realmente se ejecuta el sitio), deberá configurar el servidor paraescucharactive y acepte solicitudes al puerto 443 (y al puerto 80 (HTTP) para redirigir al puerto 443 (HTTPS)).
Pero si tiene acceso al servidor en el que configurar todo lo anterior, ¿por qué no servir el contenido directamente en los puertos estándar (es decir, 443)? (Lo que plantea la pregunta: ¿por qué se estaba utilizando el puerto 3000 para empezar?)