1
Hallo Jörg, vielen Dank für Deinen Beitrag Nr 39 im Thread Weiterleiten einer URL abhängig vom Query String
Ich erstelle hier ein neues Thema, da meine weiteren Fragen nichts mehr speziell mit Query Strings zu tun haben, sondern mit Fragen zum korrekten Gesamtaufbau meiner .htaccess. Deine helfende Antwort vom o.g. thread lasse ich hier natürlich einfliessen. Ich hoffe, Du kannst mir nochmal weiterhelfen.
Wenn ich also folgende Ausgangssituation habe:
0. Die betreffende Website zieht zu einem neuen Provider um und deren URLs ändern sich von einem alten dynamischen Format zu einem neuen statischen Format, wobei die Domain (hier anonymisiert mit "http://www.domain.tld" bezeichnet) gleich bleibt. Jede einzelne alte URL soll auf die entsprechende neue URL per 301 umgeleitet werden.
1. Die weiterzuleitende alte URL der Startseite ist so aufgebaut:
2. die weiterzuleitenden alten URLs der restlichen 16 Seiten sind so aufgebaut (wobei die Parameter des Querystrings eine konkrete Unterseite definieren):
3. die neue URL der Startseite lautet:
4. die neuen URLs der restlichen 16 Seiten lauten:
wobei gilt, dass es natürlich pro Seite einen jeweils eigenen seitennamen gibt und dass alle html-Dateien direkt unterhalb des document-roots liegen. => keine hierarchischen URLs.
5. Die Website liegt nach dem Umzug in einem Unterverzeichnis /live/. Dieses Unterverzeichnis soll zugleich als neuer document root festgelegt werden, sodass gilt http://www.domain.tld/ zeigt auf den physikalischen Pfad /live/index.html, bzw. http://www.domain.tld/seitenname.html zeigt auf /live/seitenname.html.
Würde meine .htaccess dann so korrekt sein, wie folgt?
Fragen dazu:
zu #1:
Der default document root des neuen Providers ist auf das physikalische Verzeichnis public_html gemapt. Muss ich dann in der documentRoot Direktive public_hrml noch voranstellen, oder passt meine Syntax so wie oben angegeben? (-> Shared Hosting Paket, kein Root Zugriff, keine Einsicht in höhere Verzeichnisebenen als /public_html).
zu #2 und #3:
Kommt #2 nicht #3 in die Quere, da alle URLs unter #3 ja um Querystrings ergänzte Startseiten-URLs sind? Wenn ja, was müsste ich ändern?
zu #3:
Muss ich in der RewriteRule sämtliche Punkte maskieren, oder ist es so korrekt, wie ich es angegeben habe?
Habe ich in meiner .htaccess im Hinblick auf meine eingangs genannten Anforderungen noch etwas vergessen?
Ich bedanke mich nochmals und viele Grüße
P.S.:Kann man Dir auch eine Spende zukommen lassen?
Ich erstelle hier ein neues Thema, da meine weiteren Fragen nichts mehr speziell mit Query Strings zu tun haben, sondern mit Fragen zum korrekten Gesamtaufbau meiner .htaccess. Deine helfende Antwort vom o.g. thread lasse ich hier natürlich einfliessen. Ich hoffe, Du kannst mir nochmal weiterhelfen.
Wenn ich also folgende Ausgangssituation habe:
0. Die betreffende Website zieht zu einem neuen Provider um und deren URLs ändern sich von einem alten dynamischen Format zu einem neuen statischen Format, wobei die Domain (hier anonymisiert mit "http://www.domain.tld" bezeichnet) gleich bleibt. Jede einzelne alte URL soll auf die entsprechende neue URL per 301 umgeleitet werden.
1. Die weiterzuleitende alte URL der Startseite ist so aufgebaut:
http://www.domain.tld/content/index.php
2. die weiterzuleitenden alten URLs der restlichen 16 Seiten sind so aufgebaut (wobei die Parameter des Querystrings eine konkrete Unterseite definieren):
http://www.domain.tld/content/index.php?option=com_content&task=view&id=7&Itemid=15
3. die neue URL der Startseite lautet:
http://www.domain.tld
4. die neuen URLs der restlichen 16 Seiten lauten:
http://www.domain.tld/seitenname.html
wobei gilt, dass es natürlich pro Seite einen jeweils eigenen seitennamen gibt und dass alle html-Dateien direkt unterhalb des document-roots liegen. => keine hierarchischen URLs.
5. Die Website liegt nach dem Umzug in einem Unterverzeichnis /live/. Dieses Unterverzeichnis soll zugleich als neuer document root festgelegt werden, sodass gilt http://www.domain.tld/ zeigt auf den physikalischen Pfad /live/index.html, bzw. http://www.domain.tld/seitenname.html zeigt auf /live/seitenname.html.
Würde meine .htaccess dann so korrekt sein, wie folgt?
#1. Setzen des neuen DocumentRoots
DocumentRoot /live
#2. Umleiten der Startseite
redirect 301 /content/index.php http://www.domain.tld/
#3. Umleiten der restlichen 16 Seiten
RewriteEngine On
RewriteBase /content/
RewriteCond %{QUERY_STRING} option=com_content&task=view id=7&Itemid=15
RewriteRule index\.php http://www.domain.tld/seitenname.html? [L,R=301]
# für jede weitere Unterseite die letzten 2 Zeilen aus dem vorgenannten Block wiederholen (also nur RewriteCond und RewriteRule)
Fragen dazu:
zu #1:
Der default document root des neuen Providers ist auf das physikalische Verzeichnis public_html gemapt. Muss ich dann in der documentRoot Direktive public_hrml noch voranstellen, oder passt meine Syntax so wie oben angegeben? (-> Shared Hosting Paket, kein Root Zugriff, keine Einsicht in höhere Verzeichnisebenen als /public_html).
zu #2 und #3:
Kommt #2 nicht #3 in die Quere, da alle URLs unter #3 ja um Querystrings ergänzte Startseiten-URLs sind? Wenn ja, was müsste ich ändern?
zu #3:
Muss ich in der RewriteRule sämtliche Punkte maskieren, oder ist es so korrekt, wie ich es angegeben habe?
Habe ich in meiner .htaccess im Hinblick auf meine eingangs genannten Anforderungen noch etwas vergessen?
Ich bedanke mich nochmals und viele Grüße
P.S.:Kann man Dir auch eine Spende zukommen lassen?