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 .htaccess
sieht 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?)