Ergebnis 1 bis 21 von 21

Thema: Der Verzweiflung nahe, wegen mod_rewrite und Multidomains, Umlaute gibt's auch

  1. #1
    Contao-Nutzer
    Registriert seit
    23.05.2012.
    Beiträge
    89

    Standard Der Verzweiflung nahe, wegen mod_rewrite und Multidomains, Umlaute gibt's auch

    Hallo Forum,

    ich habe ein Problem mit mehreren Domains und mod_rewrite in Verbindung mit Contao, welches mich echt zur Verzweiflung bringt.

    Jeder Versuch mod_rewrite zu verstehen ist in den letzten Jahren bei mir komplett nach hinten losgegangen. Contao benutze ich seit knapp zwei Wochen und komme ganz gut damit klar.

    Im Moment mache ich damit zwei Websites, die auf einem Webspace laufen. Bei Hetzner habe ich eine Domain mit Umlaut registriert. Als Addon-Domain dieselbe Domain noch mal ohne Umlaut. Beide zeigen auf das selbe Root-Verzeichnis, in dem Contao problemlos läuft. mod_rewrite funktioniert bei der Hetzner-Domain auch.

    Außerdem habe ich unter beiden Domains je eine Subdomain "blog" angelegt, die für Contao (ist ja Multidomainfähig) beide ebenfalls auf das gleiche Verzeichnis zeigen.

    Contao unterscheidet offenbar auch noch zwischen mit und ohne www-Subdomain.

    In Contao sind zwei Seitenbäume aufgebaut. Der eine enthält die Hauptseite, welche von allen Domains ohne "blog" aus aufgerufen werden können soll. Der Blog muss von beiden blog-Subdomains aus erreichbar sein.

    Es gibt also folgende Domains (Beispielname), die wie aufgelistet funktionieren sollen:

    • http://ümlautdomain.de/ -->Hauptseite
    • http://www.ümlautdomain.de/ -->Hauptseite
    • http://blog.ümlautdomain.de/ -->Blog


    • http://uemlautdomain.de/ -->Hauptseite
    • http://www.uemlautdomain.de/ -->Hauptseite
    • http://blog.uemlautdomain.de/ -->Blog


    Wenn ich in Contao in der Seitenstruktur für die Hauptseite bei DNS-Einstellungen>Domainname nichts eintrage, laden alle Anfragen für die Hauptseite korrekt dort. Beim Blog ist an dieser Stelle blog.ümlautdomain.de eingetragen, was die richtigen Seiten unter dieser Adresse aufruft. Dummerweise funktioniert nun natürlich immer noch nicht, dass der Blog unter blog.uemlautdomain.de aufgerufen wird. Da kommt man auf die Hauptseite.

    Das muss sich doch mit mod_rewrite korrigieren lassen, oder? Die letzten 3 Tage Experimente in der .htaccess im Root-Verzeichnis und das abarbeiten zahlloser Tutorials über mod_rewrite bringen mich bisher kein Stück weiter und ich werde nur frustrierter, weil da nichts funktioniert.

    In den System-Einstellungen von Contao ist übrigens der Haken bei "URLs umschreiben" gesetzt, wie auch bei "Den auto_item-Parameter verwenden". Was macht ersteres eigentlich? Sollte das Umschreiben der URLs nicht ausschließlich über die htaccess gehen?

    Ich hoffe, mir kann hier jemand helfen. Vielen Dank im Voraus.
    Markus

  2. #2
    Contao-Fan Avatar von mike_mcfly
    Registriert seit
    29.11.2009.
    Ort
    Waiblingen
    Beiträge
    462

    Standard

    So müsste das eigentlich probieren:

    HTML-Code:
      RewriteCond %{HTTP_HOST} ^ümlautdomain.de\.de [NC]
      RewriteRule (.*) http://www.ümlautdomain.de/$1 [R=301,L]
    
      RewriteCond %{HTTP_HOST} ^uemlautdomain.de\.de [NC]
      RewriteRule (.*) http://www.uemlautdomain.de/$1 [R=301,L]
    Die blog.ümlautdomain.de kannst Du bei Deinem Hoster auf die entsprechende Seite weiterleiten.
    .................................................. ...............................
    Warum der Marine beitreten, wenn man Pirat sein kann?
    - Steve Jobs

  3. #3
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich würde mir eine Domain aussuche, z.B. umlautdomain.de und alle anderen dann direkt bei Hetzner nicht in den Contao-Ordner leiten, sondern als Umleitung auf diese Domain einrichten. Damit ersparst du dir das rewrite-Gebastel und hast auch keine 2 Seiten mit gleichem Inhalt, da in der Adresszeile dann immer nur deine bevorzugte Domain steht. Im BE arbeitet der Haupt-Startpunkt (der ohne DNS-Eintrag) dann mit dieser einen Domain.

    Für Subdomains dann das Gleiche, www-Domain entfällt da natürlich. Die Startpunkte für Subdomains bekommen dann einen DNS-Eintrag - die Subdomain.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  4. #4
    Contao-Nutzer
    Registriert seit
    23.05.2012.
    Beiträge
    89

    Standard

    [QUOTE=mike_mcfly;203624]So müsste das eigentlich probieren:[QUOTE]

    Hallo,
    vielen Dank für die Mühe erstmal.

    HTML-Code:
      RewriteCond %{HTTP_HOST} ^ümlautdomain.de\.de [NC]
      RewriteRule (.*) http://www.ümlautdomain.de/$1 [R=301,L]
    
      RewriteCond %{HTTP_HOST} ^uemlautdomain.de\.de [NC]
      RewriteRule (.*) http://www.uemlautdomain.de/$1 [R=301,L]
    Wenn ich das richtig verstehe, macht das aus den Domains ohne www welche mit. Das Problem mit den Hauptseiten war ja schon gelöst. Das eigentliche Problem ist die Subdomain:

    Die blog.ümlautdomain.de kannst Du bei Deinem Hoster auf die entsprechende Seite weiterleiten.
    Ich hatte auch schon mal drüber nachgedacht einfach eine Weiterleitung zu machen. Leider kann ich das nicht machen:
    Wichtig ist mir, dass der Blog über die Umlautdomain verfügbar ist. Bei Contao habe ich als Base-URL für den RSS-Feed (und bei Twitter auch) aber die Domain ohne Umlaut angegeben. Das ist ein Trick, weil einige Feedreader bei der Umlautdomain als Base-URL für den Feed sich partout geweigert haben den Newsbeitrag korrekt aufzurufen. Twitter kommt auch gar nicht mit Umlauten in Domains klar. Bei Weiterleitungen von Diensten kann ich damit leben, dass die Leute auf meinem umlautfreien "Fallback" landen. Damit das funktioniert, müsste transparent der Umlautteil in der Domain gegen den ohne getauscht werden. Ein Beispiel:

    http://blog.uemlautdomain.de/eintrag/test-123.html ist der Link, der für den Feed generiert wird. Es müsste also nur der Domainteil umgebogen werden. Also zu:
    http://blog.ümlautdomain.de/eintrag/test-123.html, weil ich in Contao ja nur eine URL bei den DNS-Einstellungen angeben konnte und ich da die Umlautdomain stehen habe.
    Momentan kriege ich bei den Links aus dem Feed nur ein "Page not found".

    Vielen Dank nochmal.

  5. #5
    Contao-Nutzer
    Registriert seit
    23.05.2012.
    Beiträge
    89

    Standard

    Zitat Zitat von Andreas Beitrag anzeigen
    Ich würde mir eine Domain aussuche, z.B. umlautdomain.de und alle anderen dann direkt bei Hetzner nicht in den Contao-Ordner leiten, sondern als Umleitung auf diese Domain einrichten. Damit ersparst du dir das rewrite-Gebastel und hast auch keine 2 Seiten mit gleichem Inhalt, da in der Adresszeile dann immer nur deine bevorzugte Domain steht. Im BE arbeitet der Haupt-Startpunkt (der ohne DNS-Eintrag) dann mit dieser einen Domain.

    Für Subdomains dann das Gleiche, www-Domain entfällt da natürlich. Die Startpunkte für Subdomains bekommen dann einen DNS-Eintrag - die Subdomain.
    Ich probiere jetzt doch mal die Weiterleitung. Wobei eine Weiterleitung im Webinterface von Hetzner einzurichten auch nur in die .htaccess reinschreibt und damit die ja recht umfangreiche Contao-Original .htaccess irgendwie umzuschreiben scheint.

    So richtige funktioniert das alles nicht.

    Hetzners Webinterface erzeugt folgendes:
    Redirect permanent / http://ümlautdomain.de/

    Dann geht aber gar nichts mehr und der Browser sagt, die Seite kann nicht aufgerufen werden, weil es zu viele Umleitungen gegen würde.

    Ich habe dann diverse Varianten davon durchgespielt. Eigentlich will ich jetzt nur noch von A nach B umleiten. Also:
    Redirect permanent http://uemlautdomain.de/ http://ümlautdomain.de/

    Geht aber auch nicht. Sollte die erste Adresse nicht das aufgerufene sein und der zweite Teil das neue Ziel?

    Ist es eigentlich wichtig, wo die Zeile in der .htaccess steht? Gerade in der Contao-htaccess steht ja schon sehr viel drin...

  6. #6
    Contao-Nutzer
    Registriert seit
    23.05.2012.
    Beiträge
    89

    Standard

    Halleluja, das hier habe ich beim googlen gefunden und es funktioniert:

    RewriteCond %{HTTP_HOST} ^www.domain.net$ [NC,OR]
    RewriteCond %{HTTP_HOST} ^domain.net$ [NC,OR]
    RewriteCond %{HTTP_HOST} ^www.domain.net$ [NC]
    RewriteRule ^(.*)$ http://domain.net/$1 [R=301,L]


    Trotzdem wäre ich echt dankbar, wenn jemand ein echt gutes Einsteiger Tutorial für mod_rewrite kennt. Egal, ob Deutsch oder Englisch. Ich hab so viele Ideen, was man damit machen könnte...
    Vielen Dank noch mal euch beiden.

  7. #7
    Contao-Fan Avatar von mike_mcfly
    Registriert seit
    29.11.2009.
    Ort
    Waiblingen
    Beiträge
    462

    Multimedia

    Zitat Zitat von Markus1982 Beitrag anzeigen
    Trotzdem wäre ich echt dankbar, wenn jemand ein echt gutes Einsteiger Tutorial für mod_rewrite kennt. Egal, ob Deutsch oder Englisch. Ich hab so viele Ideen, was man damit machen könnte...
    Vielen Dank noch mal euch beiden.
    *mitfreu*

    Googel hilft Dir
    .................................................. ...............................
    Warum der Marine beitreten, wenn man Pirat sein kann?
    - Steve Jobs

  8. #8

  9. #9
    Contao-Nutzer
    Registriert seit
    23.05.2012.
    Beiträge
    89

    Standard

    Danke, aber mit Google bin ich ja auch schon seit Tagen dran, wegen mod_rewrite

    Das nächste Problem kommt nämlich direkt: Folgende Regel funktioniert, aber Contao sagt "Page not found".

    RewriteCond %{HTTP_HOST} ^blog.domain.de$ [NC]
    RewriteRule ^/?archiv/monat/([0-9]+)$ archiv.html?month=$1 [L]

    Die Tutorials im Netz implizieren, mod_rewrite wäre für sowohl Benutzer, als auch Anwendungen auf dem Server komplett transparent. Aber das scheint hier ja nicht der Fall zu sein?! Da ist eben das Problem für mich an diesen Tutorials... (Für einen Tipp zu dieser Regel fürs Archiv wäre ich übrigens auch noch echt dankbar )

  10. #10
    Contao-Nutzer Avatar von MBM
    Registriert seit
    12.02.2010.
    Ort
    Berlin
    Beiträge
    39

    Standard

    Zitat Zitat von Markus1982 Beitrag anzeigen

    RewriteCond %{HTTP_HOST} ^blog.domain.de$
    vielleicht so?
    RewriteCond %{HTTP_HOST} ^blog\.domain\.de

    Im Forum von forum.modrewrite.de wird dir geholfen.

    Noch ein Vorschlag. Du kannst doch während deiner recherche ein tutorial für deine unterlagen erstellen u. ggf. zur verfügung stellen.
    Geändert von MBM (23.05.2012 um 21:03 Uhr)

  11. #11
    Contao-Nutzer
    Registriert seit
    23.05.2012.
    Beiträge
    89

    Standard

    Zitat Zitat von MBM Beitrag anzeigen
    vielleicht so?
    RewriteCond %{HTTP_HOST} ^blog\.domain\.de
    Mmh, nicht wirklich. Es funktioniert schon ohne Backslashes. Das Problem ist viel mehr, wenn man die Seite händisch aufruft, die dabei rauskommt http://blog.domain.de/archiv/monat/201205 kommt ein "Page not found", anstatt transparent auf http://blog.domain.de/archiv.html?month=201205 umzuleiten.

    Hänge ich das R-flag an, leitet der Server weiter auf die richtige URL, aber eben nicht transparent. Ich will, dass da http://blog.domain.de/archiv/monat/201205 stehen bleibt. Die ganzen Tutorials, die man beim googlen findet nehmen genau diesen Anwendungsfall als Beispiel. Trotzdem funktioniert es nicht. Ist das vielleicht ein Contao-Problem?

  12. #12
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von Markus1982 Beitrag anzeigen
    ... Wobei eine Weiterleitung im Webinterface von Hetzner einzurichten auch nur in die .htaccess reinschreibt und damit die ja recht umfangreiche Contao-Original .htaccess irgendwie umzuschreiben scheint. ...
    Sehr ungewöhnlich, habe ich noch nie gesehen. Und das bei Hetzner *wunder*.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  13. #13
    Contao-Nutzer
    Registriert seit
    23.05.2012.
    Beiträge
    89

    Standard

    Zitat Zitat von Andreas Beitrag anzeigen
    Sehr ungewöhnlich, habe ich noch nie gesehen. Und das bei Hetzner *wunder*.
    Ja, ist so. Außer ich übersehe da was. Aber deren Webinterface ist ja eigentlich sehr übersichtlich.

  14. #14
    Contao-Nutzer
    Registriert seit
    04.06.2012.
    Beiträge
    2

    Standard

    Zitat Zitat von Markus1982 Beitrag anzeigen
    Das Problem ist viel mehr, wenn man die Seite händisch aufruft, die dabei rauskommt http://blog.domain.de/archiv/monat/201205 kommt ein "Page not found", anstatt transparent auf http://blog.domain.de/archiv.html?month=201205 umzuleiten.

    Hänge ich das R-flag an, leitet der Server weiter auf die richtige URL, aber eben nicht transparent. Ich will, dass da http://blog.domain.de/archiv/monat/201205 stehen bleibt. Die ganzen Tutorials, die man beim googlen findet nehmen genau diesen Anwendungsfall als Beispiel. Trotzdem funktioniert es nicht. Ist das vielleicht ein Contao-Problem?
    Hallo, gibt es dafür evtl. schon eine Lösung?
    Ich habe ein ähnliches Problem - nein eigentlich das selbe:

    Code:
    RewriteRule ^produkte/([0-9]+)/(.*)\.html$ produkt-detail.html?v=$1 [L,R=301]
    funktioniert tadellos, nur soll es eben ohne R=301 sein, um die Weiterleitung zu "verstecken".
    Wenn ich es aber nur mit [L] teste, bekomme ich von Contao das unschöne "Page not found".

    Hat jemand eine Idee? Irgendwer?
    Geändert von kenntucky (13.06.2012 um 09:53 Uhr)

  15. #15
    Contao-Nutzer
    Registriert seit
    04.06.2012.
    Beiträge
    2

    Standard

    Ich weiss, Topics pushen ist unschön.
    Aber ich finde zu meiner o.g. Problematik keine Lösung, und einen neuen Thread wollte ich nicht aufmachen.

    Kann jemand zum o.g. Problem weiterhelfen? Danke

  16. #16
    Contao-Nutzer
    Registriert seit
    04.11.2009.
    Beiträge
    111

    Standard Rewrite löst GET-Parameter nicht auf

    Hallo zusammen,

    darf ich mich auch grade noch an diesen Thread hängen, da ich derzeit auf einem Kundenserver ein ähnliches Problem habe.

    Die URL http://www.domain.de/de/insider/mein...ction/new.html wird aufgerufen und soll intern auf http://www.domain.de/de/insider/mein...tml?action=new umgeschrieben werden, aber ich erhalte beim Aufruf immer Error 404.

    Die .htaccess mit den RewriteRules sieht wie folgt aus und das Ganze läuft lustigerweise auf meiner lokalen Umgebung wunderbar. Einstellungen im Contao Backend sind gleich, auch bei der .htaccess bzw. der Serverumgebung kann ich aktuell keine Unterschiede feststellen. Hier die .htaccess:

    PHP-Code:
      RewriteEngine On

      
    ##
      # Rewrite base
      #
      # Set the RewriteBase if your Contao installation is in a subdirectoy and
      # the rewrite rules are not working properly. Usage examples:
      #
      #   RewriteBase /contao-2.9.0
      #   RewriteBase /path/to/contao
      #
      # Uncomment the following line to set the RewriteBase.
      ##
      
    RewriteBase /

      
    ##
      # Malicious requests
      #
      # Contao usually does not pass absolute URLs via GET, therefore the
      # following rules block all requests that try to pass a URL or the /etc/
      # directory as parameter.
      ##
      
    RewriteCond %{REQUEST_URI} (ftp|https?):|/etc/ [NC,OR]
      
    RewriteCond %{QUERY_STRING} (ftp|https?):|/etc/ [NC]
      
    RewriteRule .* - [F,L]

      
    ##
      # Require www
      #
      # Uncomment the following lines and replace "domain.com" with your domain
      # name to redirect requests without "www". 
      ##
      
    RewriteCond %{HTTP_HOST} ^domain.de [NC]
      
    RewriteRule (.*) http://www.domain.de/$1 [R=301,L]

      ##
      # Compressed .js and .css files
      #
      # Most of the JavaScript and CSS files used in Contao are also available
      # as compressed .gz version, which requires less bandwidth and optimizes the
      # page loading time. The following rules load these compressed ressources.
      ##
      
    AddEncoding gzip .gz
      
    <FilesMatch "\.js\.gz$">
        
    AddType "text/javascript" .gz
      
    </FilesMatch>
      <
    FilesMatch "\.css\.gz$">
        
    AddType "text/css" .gz
      
    </FilesMatch>
      
    RewriteCond %{HTTP:Accept-encodinggzip
      RewriteCond 
    %{REQUEST_FILENAME} \.(js|css)$
      
    RewriteCond %{REQUEST_FILENAME}.gz -f
      RewriteRule 
    ^(.*)$ $1.gz [QSA,L]

      
    ##
      # Static ressources
      #
      # Do not rewrite requests for static files or folders such as style sheets,
      # images, movies or text documents.
      ##
      
    RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond 
    %{REQUEST_FILENAME} !-d

      
    ##
      # Contao URLs
      #
      # By default, Contao adds ".html" to the generated URLs to simulate static
      # HTML documents. If you change the URL suffix in the back end settings, make
      # sure to change it here accordingly!
      #
      #   RewriteRule .*\.html$ index.php [L]   # URL suffix .html
      #   RewriteRule .* index.php [L]          # No URL suffix
      #   RewriteRule .*\.txt$ index.php [L]    # URL suffix .txt
      #
      # If you are using mod_cache, it is recommended to use the RewriteRule below,
      # which adds the query string to the internal URL:
      # 
      #   RewriteRule (.*\.html)$ index.php/$1 [L]
      #
      # Note that not all environments support mod_rewrite and mod_cache!
      ##
      
    RewriteRule .*\.htmlindex.php [L
    Habt Ihr vielleicht eine Idee, wie ich hier wieder wie gewohnt arbeiten könnte? Es hatte nämlich beim Kunden auch bis vor einigen Wochen funktioniert, er hat sich erst dieser Tage gemeldet, dass er keinen Zugriff auf die Unterseiten habe. Und zudem hatte ich auf dem Server feststellen müssen, dass einige Dateiberechtigungen nicht mehr passen, evtl. durch Eingriff von außen oder Backup?

    Herzliche Grüße,

    Christian

  17. #17
    Alter Contao-Hase Avatar von kischd
    Registriert seit
    25.06.2009.
    Ort
    Karlsruhe
    Beiträge
    1.107

    Standard

    Habe jetzt schon einige Generatoren ausprobiert, komme leider nicht auf das richtige ergebnis

    HTML-Code:
    RewriteCond %{HTTP_HOST} ^www.domain-muenster.de[NC,OR]
    RewriteRule ^(.*)$ https://www.domain.de/m(ü|ý|ü|Ü)nster [R=301,L]

    Ich möchte von domain-muenster auf domain.de/münster umleiten

    Ich lande aber immer bei domain.de/muenster
    Gruß Mark

  18. #18
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Versuch mal dies hier:
    Code:
    RewriteCond %{HTTP_HOST} ^(www\.)?domain-muenster\.de$ [NC]
    RewriteRule ^(.*)$ https://www.example.org/muenster/$1 [R=301,L]
    In dem RewriteRule Ziel kann man keine Regular Expression verwenden, nur den Platzhalter $1 (Verweis auf die erste Klammer (.*)) für die RegEx der RewriteRule Suche (^(.*)$).
    Geändert von Andreas (20.12.2018 um 14:16 Uhr)
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  19. #19
    Alter Contao-Hase Avatar von kischd
    Registriert seit
    25.06.2009.
    Ort
    Karlsruhe
    Beiträge
    1.107

    Standard

    Hallo Andreas,

    perfekt, hat funktioniert.
    Musste erst noch den Cache leeren
    Geändert von kischd (17.12.2018 um 20:05 Uhr)
    Gruß Mark

  20. #20
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.557
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Funktioniert es so auch nicht?

    Code:
    RewriteCond %{HTTP_HOST} ^(www\.)?domain-muenster\.de$ [NC]
    RewriteRule ^(.*)$ https://www.example.org/m%C3%BCnster/$1 [R=301,L]
    301 Redirects werden gecachet. Browsercache löschen also nicht vergessen!
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  21. #21
    Contao-Fan Avatar von PaddySD
    Registriert seit
    26.10.2016.
    Ort
    Andechs
    Beiträge
    656

    Standard

    Ich würde es eher mit UE schreiben. Macht imho mehr Sinn, kaum jemand schreibt Üs wirklich in eine Adresszeile. Das geht sogar Senioren schwer von der Hand. Und google ist es egal, die erkennen das sowieso...

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •