8schpi
Goto Top

Per htaccess in einen Unterordner weiterleiten

Ich habe eine Frage zu Weiterleitung / Rewrite per htaccess. Ich habe auf einem Webspace in verschiedenen Unterordnern Software in verschiedenen Versionen liegen. Ich will per htaccess die aktuelle Version "erzwingen".

Die vorhandene Ordnerstruktur ist auf sub.domain.de:
version1
version2
version3

Ich möchte also, wenn jemand sub.domain.de/version1 aufruft, dass der Aufrufende zu sub.domain.de/version3 umgeleitet wird.

Mein Ansatz sieht bislang so aus:
RewriteEngine On
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} !^https://sub.domain.de/version3(.*)$
RewriteRule ^(.*)$ https://sub.domain.de/version3/ [R,L]
Leider funktioniert es so noch nicht. Hat jemand bitte einen Tipp für mich? Danke.

Content-ID: 262625

Url: https://administrator.de/contentid/262625

Ausgedruckt am: 22.11.2024 um 16:11 Uhr

colinardo
Lösung colinardo 08.02.2015 aktualisiert um 18:08:12 Uhr
Goto Top
Hallo 8schpi,
z.B. so
RewriteEngine On
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^sub\.domain\.de$ [NC]
RewriteCond %{REQUEST_URI} !^/version3 [NC]
RewriteRule ^(.*)$ https://sub.domain.de/version3/ [R,L]
Alternativ kannst du auch nur bei bestimmten Versionen umleiten indem du die zweite Condition so umschreibst:
RewriteCond %{REQUEST_URI} ^/version[1-2] [NC]

Grüße Uwe
8schpi
8schpi 08.02.2015 um 15:28:13 Uhr
Goto Top
Hallo Uwe,
Hallo Forum,
danke Uwe, das obige Beispiel funktioniert.

Erlaube mir bitte noch eine kleine Nachfrage:
Ich habe auch eine Subdomain, in der die Software innerhalb eines Unterordners untergebracht ist.

Die Ordnerstruktur in sub2.domain.de ist dort:
software1/version1
software1/version2

software2/version1
software2/version2


Wenn ich das obige Beispiel dann so umschreibe läuft es leider nicht:
RewriteEngine On 
Options +FollowSymLinks 
RewriteCond %{HTTP_HOST} ^sub.domain.de$ [NC] 
RewriteCond %{REQUEST_URI} !^/software1/version3 [NC] 
RewriteRule ^(.*)$ https://sub.domain.de/software1/version3/ [R,L]

Vielen Dank für alle Tipps und viele Grüße,
8schpi.
colinardo
Lösung colinardo 08.02.2015 aktualisiert um 18:08:14 Uhr
Goto Top
Du hast deine zweite Sub-Domain in Zeile 3 nicht richtig benannt ...
RewriteEngine On 
Options +FollowSymLinks 
RewriteCond %{HTTP_HOST} ^sub2\.domain\.de$ [NC] 
RewriteCond %{REQUEST_URI} !^/software1/version3/?$ [NC] 
RewriteRule ^(.*)$ https://sub2.domain.de/software1/version3/ [R,L]
Frage ist, willst du wirklich alle anderen Anfragen die nicht auf /software1/version3 enden auf die Ziel-URL weiterleiten ?
8schpi
8schpi 08.02.2015 aktualisiert um 16:32:00 Uhr
Goto Top
Ups, ich hatte beim Schreiben vergessen, dass ich die Subdomain in meinem ausgedachten Beispiel "sub2" genannt hatte. Aber leider funktioniert es auch mit der richtigen Angabe bei der Subdomain nicht.

Ja, ich will alle Anfragen die nicht mit "sub2.domain.de/software1/version3" beginnen auf die neue Ziel-URL weiterleiten.
8schpi
8schpi 08.02.2015 um 18:07:53 Uhr
Goto Top
Es funktioniert jetzt auch im Unterordner so wie oben schon vermutet. Durch reichlich bin ich drauf gekommen, dass in den Ordnern der Software teilweise "werksseitige" htaccess Dateien waren die das ganze ausgehebelt haben. htaccess Dateien in den existierenden Ordnern sind priorisiert gegenüber htaccess Dateien in meinen Softwareordnern (weil übergeordnet).