Ich stand vor der Herausforderung, meine Webseite von einem Unterverzeichnis in das Hauptverzeichnis meiner Domain zu verschieben.
Die Kernaufgabe bestand darin, sämtliche Inhalte so zu konfigurieren, dass sie zwar unter dem Pfad des Unterverzeichnisses abrufbar sind, aber gleichzeitig die Domain-URL auf die Stammdomain oder eine andere Adresse verweist.
Apache Webserver
Der Apache HTTP-Server bietet die Möglichkeit, mittels RewriteCond-Anweisungen die notwendigen Anpassungen vorzunehmen. Hierfür ist es erforderlich, entweder die Datei .htaccess oder die httpd.conf zu modifizieren und folgende Zeilen zu ergänzen:
RewriteEngine on RewriteBase / RewriteRule ^subfolder/(.*)$ /$1 [R=301,NC,L]
In diesem Szenario dient „/“ als Basis, und die RewriteRule findet auf alle URLs innerhalb des Unterverzeichnisses Anwendung, indem sie reguläre Ausdrücke verwendet. Das Flag R=301 kennzeichnet eine dauerhafte Weiterleitung.
Nginx Webserver
Eine ähnliche Umleitung lässt sich mit dem Nginx-Webserver realisieren, indem man die Direktive `rewrite` in der Konfigurationsdatei `/etc/nginx/nginx.conf` oder `/etc/nginx/conf.d/default.conf` einsetzt:
location ^~ /subfolder { rewrite ^/subfolder(.*)$ $1 last; }
Der Modifikator `^~` gewährleistet hier, dass diese Präfix-Location Vorrang behält, selbst wenn zukünftig Regex-Locations hinzugefügt werden.
IIS Server
Auf dem IIS (Internet Information Services) kann das URL-Rewrite-Modul genutzt werden, um URLs, die sich in einem Unterverzeichnis befinden, so darzustellen, als ob sie im Hauptverzeichnis liegen. Hierzu wird die Datei `web.config` im Webroot-Verzeichnis (`%SystemDrive%\inetpub\wwwroot`) angepasst:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Root_URL_Rewrite" stopProcessing="true"> <match url="^(.*)" /> <action type="Rewrite" url="/subfolder/{R:0}" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
Alternativ dazu besteht die Möglichkeit, die URL-Rewrite-Benutzeroberfläche im IIS-Manager zu verwenden, um eine entsprechende eingehende Regel zu erstellen.
Cloudflare
Eine ähnliche Umleitungsstrategie lässt sich mit Cloudflare umsetzen. Hier die notwendigen Schritte:
- Melden Sie sich bei Ihrem Cloudflare-Konto an.
- Wählen Sie das relevante Cloudflare-Konto für die Domain aus, für die Sie die URL-Weiterleitung einrichten möchten.
- Navigieren Sie zur Anwendung „Regeln“ und dort zum Tab „Seitenregeln“.
- Klicken Sie unter „Seitenregeln“ auf „Seitenregel erstellen“. Ein Dialogfenster zur Erstellung einer Seitenregel für Ihre Domain wird geöffnet.
- Im Feld „Wenn die URL übereinstimmt“ geben Sie nun das URL-Muster für das Unterverzeichnis an, auf das die Regel angewendet werden soll, z.B. `https://example.com/unterverzeichnis`.
- Klicken Sie auf „Einstellung hinzufügen“ und selektieren Sie „Weiterleitungs-URL“ aus dem Dropdown-Menü.
- Klicken Sie auf „Statuscode auswählen“ und bestimmen Sie entweder 301 (permanente Weiterleitung) oder 302 (temporäre Weiterleitung).
- Tragen Sie die Ziel-URL Ihrer Stammdomain ein und klicken Sie abschließend auf „Speichern und bereitstellen“.
Das oben angeführte Beispiel veranschaulicht, wie man sämtlichen Traffic von `https://wdzwdz.com/blog` auf `https://wdzwdz.com` umleitet.
Fazit
Wie Sie sehen, ist die Weiterleitung oder Abbildung eines Unterverzeichnisses auf das Stammverzeichnis oder eine andere URL eine gängige Aufgabe, die von den meisten verbreiteten Servern auf unterschiedliche Weise unterstützt wird.
Erfahren Sie als Nächstes, wie man mehrere Websites auf einer einzigen IP-Adresse hosten kann.
Hat Ihnen dieser Artikel gefallen? Dann teilen Sie ihn doch mit anderen!