So maskieren Sie eine URL auf einem anderen Port mit htaccess rewrite

So maskieren Sie eine URL auf einem anderen Port mit htaccess rewrite

Ich habe eine Seite mit einer URL wie dieser:

https://example.com:3000/newsite

aber ich möchte von hier aus darauf zugreifen können:

https://example.com/newsite

und maskieren Sie auch die URL, sodass vor dem letzten immer alles so angezeigt wird/

Ich habe es folgendermaßen versucht:

RewriteRule ^:3000/newsite/?$ /site/

aber es hat nicht funktioniert. Warum?

Mein Ganzes .htaccesssieht so aus, weil ich bereits einige andere Regeln habe, die gleich bleiben müssen:

<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>

Antwort1

RewriteRule ^:3000/newsite/?$ /site/

Ein einfaches „Entfernen“ der Portnummer aus der angefragten URL ist auf diese Weise (durch eine interne Umschreibung) nicht möglich.

Um Ihrer Aufforderung nachzukommen, müssten Sie einen Reverse-Proxy konfigurieren (was wahrscheinlich Änderungen an der Serverkonfiguration erfordert). Sie müssen jedoch trotzdem die URLs auf Ihrer Site ändern, um die Portnummer aus allen internen Links zu entfernen.

Um jedoch den Reverse-Proxy zu konfigurieren (von Port 443 (HTTPS) zu Port 3000, auf dem die Site tatsächlich ausgeführt wird), müssen Sie den Server so konfigurieren, dassHörenAktivieren und akzeptieren Sie Anfragen an Port 443 (und Port 80 (HTTP), um auf Port 443 (HTTPS) umzuleiten).

Wenn Sie jedoch Zugriff auf den Server haben, auf dem Sie all das oben genannte konfigurieren, warum stellen Sie den Inhalt dann nicht einfach direkt auf den Standardports (z. B. 443) bereit? (Dabei stellt sich die Frage, warum ursprünglich Port 3000 verwendet wurde?)

verwandte Informationen