URL abfangen, Zeichenkette austauschen und aufrufen - mit htaccess oder PHP?

Mike Rofon

Erfahrenes Mitglied
Hallo zusammen!

Ich habe folgendes Problem:
Aufgrund eines juristischen Problems muß ich ein Joomla 3 quasi aufsplitten: Die Aufgaben der Seite müssen auf 2 getrennte Joomla-Seiten mit unterschiedlichen URLs aufgeteilt werden.
Also clone ich das J3 und installiere es auf einem anderen Webspace nochmal.
Erreichbar sind die beiden dann über http://joomla1.domain.de bzw. http://joomla2.domain.de

Problem jetzt:
Aus juristischen Gründen muß ich Usern die Funktionalität eines Links gewährleisten, der in etwa so aussieht:
http://joomla1.domain.de/index.php?o...c5bb086b463ff7
Aber die Funktionalität ist jetzt ausgegliedert und jetzt unter joomla2.domain.de zu erreichen. Hängt mit den Domains zusammen, die ich verwende.

Jetzt die Frage: Wie fange ich Seitenaufrufe wie den obigen ab, tausche in der URL die Zeichenkette "joomla1" gegen "joomla2" aus und leite auf diese URL um, wobei alle Parameter hinten dran natürlich erhalten bleiben müssen? mod_rewrite kommt doch meiner Meinung nach nicht in Frage, da ich keine suchmaschinenfreundliche Links haben will sondern die gleichen Parameter nur auf einer anderen Subdomain aufrufen will.

Ich habe ein Zeitproblem (Fristsetzung) und kann mich nicht wirklich erst umfassend in eine Dok zu htaccess einlesen, habe beim bisherigen Überfliegen bisher keine Möglichkeit gefunden Zeichenketten auszuwerten, zu verändern und dann da hin zu verlinken.
andere Möglichkeit wäre PHP, am Ende mit Header:Location... aber in welches Verzeichnis müßte die PHP? Wie müßte die heißen? Bzw, in welche index.php müßten die Befehle rein?

Vielen Dank!
 
Hi

mod_rewrite kommt doch meiner Meinung nach nicht in Frage, da ich keine suchmaschinenfreundliche Links haben will sondern die gleichen Parameter nur auf einer anderen Subdomain aufrufen will.
mod_rewrite hat mit Suchmaschinen eigentlich auch gar nichts zu tun, sondern funktioniert ganz unabhängig vom Zweck.

Die ganze Schöne-Url-Sache für Suchmaschinen ist heute auch vermutlich gar nicht mehr so wichtig (kanns nicht beweisen, aber...), gemessen daran wie wenig hochgerankte Seiten wirklich schöne Urls verwenden. Allerdings ist es für Menschen auch hilfreich - ein https://www.tutorials.de/threads/url-abfangen-zeichenkette-austauschen-und-aufrufen-mit-htaccess-oder-php.405747/ ist besser verständlich als zB. ein (um es auf die Spitze zu treiben) 78.46.48.194:443/./?t=405747 (funktioniert so nicht direkt, aus anderen Gründen)

Zurück zum Thema, was genau sind die Kriterien, um umzuleiten? zB. index.php immer wenn ein option= - Parameter dabei ist? Oder...?

Sind außer dem Subdomaintausch noch andere Änderungen nötig?

Soll es eine permanente (301) Weiterleitung sein? (zB. werden solche von manchen Browsern gecached, um sich beim nächsten Mal einen Aufruf zu ersparen. Nachteil ist dass das Ändern der Weiterleitung dann nicht sofort übernommen wird. Und auch für Suchmaschinen ist es ein Kriterium (diesmal wirklich))
 
was genau sind die Kriterien, um umzuleiten? zB. index.php immer wenn ein option= - Parameter dabei ist? Oder...?
Die Frage ist ob in dem Link die Zeichenkette "option=com_componente" vorkommt. Wenn ja, nimm den gesamten Link, tausche "jommla1" durch "joomla2" aus und rufe diesen Link auf.
Sind außer dem Subdomaintausch noch andere Änderungen nötig?
nein, und sie wären auch unerwünscht
Soll es eine permanente (301) Weiterleitung sein? (zB. werden solche von manchen Browsern gecached, um sich beim nächsten Mal einen Aufruf zu ersparen. Nachteil ist dass das Ändern der Weiterleitung dann nicht sofort übernommen wird. Und auch für Suchmaschinen ist es ein Kriterium (diesmal wirklich))
ich glaube, eher nicht permanent, denn mittelfristig werden die betreffenden Links aus dem RICHTIGEN Joomla heraus erstellt und damit braucht es diese Weiterleitung nicht mehr. Es ist eine Übergangslösung, die ich bauen muß, weil es diesen erwähnten Zeitfaktor gibt.
 
Versuche
Code:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^joomla1\.domain\.de$ [NC]
RewriteCond %{REQUEST_URI} ^/index.php [NC]
RewriteCond %{QUERY_STRING} option=com_componente [NC]
RewriteRule ^ http://joomla2.domain.de%{REQUEST_URI} [L,R=302,NE]
 
Zuletzt bearbeitet:
Hab ich gemacht :)
Und es funktioniert, aber nur wenn man Zeile 2 auskommentiert.

Da es sich um die "Standard"-htaccess handelt, die von Joomla mitgeliefert wird, sind da schon diverse Rewriterules definiert.
Jetzt bin ich mir unsicher. Wenn ich davon ausgehe, daß die 5 Zeilen einen "Block" darstellen, der in sich eine spezielle Aufgabe erfüllt, sehe ich keine wirkliche Abgrenzung zwischen den verschiedenen Blöcken, die schon definiert waren. Muß ich irgendwie sicherstellen, daß die anderen Regeln wie zB die nachfolgende (die danach steht) trotzdem weiter funktionieren?
Code:
## Begin - Joomla! core SEF Section.
#
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php
# and the requested path and file doesn't directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn't directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]
#
## End - Joomla! core SEF Section.
 
Zurück