Umschreiben der URL mit variablem Unterverzeichnis funktioniert nicht

Lesezeit: 2 Minuten

Benutzer-Avatar
markb

Ich möchte in der Lage sein, die folgende Website-Struktur so umzuschreiben, dass sie sowohl für die Hauptdomäne als auch für alle Unterverzeichnisse gilt.

domain.ltd
|    | wp-content
|       | themes
|           | theme01
|               | core
|                   | web.php   # http://domain.ltd/wp-content/themes/theme01/core/web.php
|
|- subsite1
|   | wp-content/themes/theme02/core
|       | web.php               # http://domain.ltd/subsite1/wp-content/themes/theme02/core/web.php
|
|- subsite2
|   | wp-content/themes/theme03/core
|       | web.php               # http://domain.ltd/subsite2/wp-content/themes/theme03/core/web.php

Ich habe folgendes .htaccess Regeln:

RewriteRule ^([_0-9a-zA-Z-])/ws/(.*) /wp-content/themes/$1/core/$2

Aber ich kann nicht herausfinden, warum es nicht passt. Ich habe versucht, die zu verwenden https://htaccess.madewithlove.be Tester, konnte aber nicht das richtige Muster finden.

Im Wesentlichen möchte ich, dass die URLs sind:

http://domain.ltd/ws/web.php
http://domain.ltd/subsite1/ws/web.php
http://domain.ltd/subsite2/ws/web.php

  • Die Verwendung von so etwas wie meiner Lösung hier könnte hilfreich sein stackoverflow.com/questions/57467883/…

    – FluxCoder

    10. Dezember 2019 um 0:43 Uhr

Ich vermute, dass Ihrer Frage einige Details fehlen, oder dass es Fehler gibt, da nicht vollständig erklärt wird, wie Sie alle Variationen der URL umleiten möchten.

Wenn Sie die “Hauptdomäne” umleiten möchten, wie Sie sagen, zu theme01 Standardmäßig benötigen Sie jedes Mal eine separate Regel, um nur den Fall abzugleichen, in dem die URL keine “Subdomain” enthält:

RewriteRule ^/?ws/([\w\.-]+)$ /wp-content/themes/theme01/core/$1 [L]

Das leitet um http://domain.ltd/ws/web.php zu /wp-content/themes/theme01/core/web.php und Sie behandeln effektiv theme01 als Standardthema.

Sie benötigen dann eine zweite Regel, um alle Varianten, die eine “Subdomain” enthalten, umzuleiten und diese als Designnamen zu verwenden (was Sie anscheinend tun möchten):

RewriteRule ^/?([\w-]+)/ws/([\w\.-]+)$ /wp-content/themes/$1/core/$2 [L]

Das leitet um http://domain.ltd/subdomain2/ws/web.php zu /wp-content/themes/subdomain2/core/web.php.

Eine einfache Lösung, wenn es Ihnen nichts ausmacht, ist einfach einen ws-Ordner zu erstellen und alle Dateien darin zu lassen. Erstellen Sie außerdem eine Umleitungsregel im Stammordner zu Ihrer Hauptwebsite

domain.ltd/ws
|    | wp-content
|       | themes
|           | theme01
|               | core
|                   | web.php   # http://domain.ltd/wp-content/themes/theme01/core/web.php
|
|- subsite1
|   | wp-content/themes/theme02/core
|       | web.php               # http://domain.ltd/subsite1/wp-content/themes/theme02/core/web.php
|
|- subsite2
|   | wp-content/themes/theme03/core
|       | web.php               # http://domain.ltd/subsite2/wp-content/themes/theme03/core/web.php

1246720cookie-checkUmschreiben der URL mit variablem Unterverzeichnis funktioniert nicht

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy