Weiterleitung .htaccess 301

shack75

Cadet 3rd Year
Registriert
Mai 2021
Beiträge
54
Hallo,

nachdem ich einfach nicht mehr weiterkomme, versuche ich es mal hier.

Gegeben ist eine alte URL, die es so nicht mehr gibt, die aber noch im Netz verwendet wird, nämlich:

https://eine-domain.de/index.php?option=com_jem&view=venue&id=2:haus$

Diese URL soll jetzt per .htaccess dauerhaft umgeleitet werden auf

https://eine-domain.de/pages/haus.php

Meine Versuche mit

RewriteEngine On RewriteCond %{QUERY_STRING} ^https://eine-domain.de/index.php?option=com_jem&view=venue&id=2:haus$ [NE] RewriteRule ^https://eine-domain.de/pages/haus.php$ [R=301,L]

RewriteEngine On RewriteCond %{QUERY_STRING} ^https://eine-domain.de/index.php?option=com_jem&view=venue&id=2:haus$ RewriteRule ^https://eine-domain.de/pages/haus.php$ [R=301,L]

RewriteEngine On RewriteRule ^https://eine-domain.de/index.php?option=com_jem&view=venue&id=2:haus$ /pages/haus.php [R=301,L,NE]

RewriteEngine On RewriteCond %{QUERY_STRING} ^id=2:haus$ RewriteRule ^.*$ https://eine-domain.de/pages/haus.php? [R=301,L]

waren leider erfolglos.

Entweder lande ich auf der Startseite der Homepage oder es kommt ein 500 Internal Server Error.

Weiß jemand Rat?

Danke und Gruß,
Shack.
 
Die URL die du umleisten willst ENDET hinter dem .php ! Das Fragezeichen und das dahinter sind "nur" die Argumente WIE das geöffnet werden soll, die brauchst du bei ner Umleitung nicht !
Versuch es also schlicht nochmal ohne die Argumente.
 
Gibt es einen bestimmten Grund, warum Du nicht einfach eine 404 anzeigst, wenn die nicht mehr existente URL aufgerufen wird?
 
NatokWa schrieb:
Die URL die du umleisten willst ENDET hinter dem .php ! Das Fragezeichen und das dahinter sind "nur" die Argumente WIE das geöffnet werden soll, die brauchst du bei ner Umleitung nicht !
Versuch es also schlicht nochmal ohne die Argumente.

Ich habe es jetzt mal mit

RewriteEngine On RewriteRule ^https://eine-domain.de/index.php$ /pages/haus.php [R=301,L]

versucht, leider ohne Erfolg, ich lande auf der Startseite.

hamju63 schrieb:
Gibt es einen bestimmten Grund, warum Du nicht einfach eine 404 anzeigst, wenn die nicht mehr existente URL aufgerufen wird?

Weil die URL

https://eine-domain.de/index.php?option=com_jem&view=venue&id=2:haus$

nicht auf die 404 geht, sondern die Startseite aufruft.

Tatsächlich ist eine ./index.php existent. Vielleicht ist das der Grund.
 
NATÜRLICH ist das der Grund ! INDEX wird auch dann geöffnet wenn du den ganzen Sermon hinter "Eine-domain.de/" weg läßt, das ist der SINN vom "Index" egal welcher Dateiendung solange es htm/html/php und die sonstigen gängigen Formate hat.
Ungültige/falsche Argumente werden ohnehin dann einfach Ignoriert.
 
Dann ist ja wenigstens mal das Problem identifiziert.

Fehlt noch eine How To.
 
also ich denke schon das der query string wichtig ist um zu entscheiden auf welche seite umgeleitet werden soll bzw kann der parameter dann in einem einzeiler übergeben werden, wenn die namen gleich geblieben sind. das weiterleitungen natürlich sinnvoll sind wollte ich auch nochmal klarstellen.

falls die neue webseite auch ein CMS ist hat es ggf ein Redirection Plugin oder Einstellungen, die du alternativ nutzen kannst, wenn htaccess und regex zu kompliziert sind, was ich gut verstehen kann.

so zb: https://stackoverflow.com/questions/37833059/htaccess-redirect-url-with-parameters-in-a-new-url oder so: https://stackoverflow.com/questions/69806153/htaccess-redirect-url-with-get-parameters
 
aronlad schrieb:

Das habe ich getan, bzw. versucht und bin bei den oben genannten Ergebnissen dann eben nicht mehr weitergekommen. Da fand ich es dann irgendwann angebracht, um Hilfe zu bitten.

aronlad schrieb:
Server-Variables [...]:

Hint:
RewriteCond %{QUERY_STRING} "dein query string"
RewriteRule ...

Das habe ich mit

RewriteEngine On RewriteCond %{QUERY_STRING} ^id=2:haus$ RewriteRule ^.*$ https://eine-domain.de/pages/haus.php? [R=301,L]

versucht, komme damit aber nur auf die Startseite und eben nicht auf ./pages/haus.php

aronlad schrieb:

Der bestätigt mir, dass ich auf die Startseite komme, hilft mir aber nicht bei einer Lösung
Ergänzung ()

netzgestaltung schrieb:
falls die neue webseite auch ein CMS ist hat es ggf ein Redirection Plugin oder Einstellungen, die du alternativ nutzen kannst, wenn htaccess und regex zu kompliziert sind, was ich gut verstehen kann.

War früher Joomla und ist jetzt WBCE.

Danke für die Links, die schaue ich mir mal an.
Ergänzung ()

Für alle, die das gleiche Problem haben, die Lösung fand ich hier:

https://joergs-forum.de/weiterleiten-einer-url-abhaengig-vom-query-string-t-3529-1

Bei mir war es dann:

RewriteEngine On RewriteCond %{QUERY_STRING} ^option=com_jem&view=venue&id=2:haus$ RewriteRule ^.*$ https://eine-domain.de/pages/haus.php? [R=301,L]
 
Zuletzt bearbeitet:
Code:
RewriteEngine On
RewriteCond %{QUERY_STRING} id=2:haus$
RewriteRule ^.*$ https://eine-domain.de/pages/haus.php? [R=301,L]
Der Unterschied ist: ohne ^, weil das bedeutet, der String beginnt mit id=...

shack75 schrieb:
hilft mir aber nicht bei einer Lösung
Doch er hilft, man muss halt mal bissel rumprobieren, wenn man nicht genau weiß wie.

edit:
shack75 schrieb:
Bei mir war es dann:
oder halt den kompletten String, wenn er immer gleich ist
 
shack75 schrieb:
Gegeben ist eine alte URL, die es so nicht mehr gibt, die aber noch im Netz verwendet wird, nämlich:

https://eine-domain.de/index.php?option=com_jem&view=venue&id=2:haus$
Wenn das letzte dollarsign wirklich Bestandteil der URL ist dann wird deine vermeintliche Lösung auch nicht funktionieren, ich gehe aber von einem Typo aus

shack75 schrieb:
Der bestätigt mir, dass ich auf die Startseite komme, hilft mir aber nicht bei einer Lösung
Um ehrlich zu sein halte ich diese Aussage für eine Frechheit.

https://htaccess.madewithlove.com?share=addd8597-82f0-449d-843c-7b9d425a3af6
 
  • Gefällt mir
Reaktionen: netzgestaltung
mit ein bisserl testen hat mir der tester das richtige ergebnis gebracht:


Code:
RewriteEngine On
RewriteCond %{QUERY_STRING} (?:^|&)id=([^&]+) [NC]
RewriteRule ^.*$ https://eine-domain.de/pages/haus.php? [R=301,L]

ich denke ^ am beginn hat nicht gereicht.

hier siehst du, wie multiple parameter in einen pfad verwandelt werden: https://stackoverflow.com/a/14308411
 
netzgestaltung schrieb:
ich denke ^ am beginn hat nicht gereicht.
Ich hatte das $ am Ende nicht mit in der Source URL (gehört sicher nicht dahin). Ich hab da extra komplexes/regex weg gelassen um nicht zusätzlich zu verwirren.
 
Zurück
Oben