Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 40 von 44

Thema: htaccess-> mehrsprachigkeit und multidomain

  1. #1
    Contao-Nutzer
    Registriert seit
    14.10.2015.
    Beiträge
    37

    Standard htaccess-> mehrsprachigkeit und multidomain

    Hallo liebe Contao-Gemeinde,
    ich habe eine Homepage die in zwei Sprachen verfügbar ist (mit i18nl10n Sprachwechsler, die Sprache ist als Teil der URL hinzugefügt (z.B. mypage.com/en/index.html)). Funktioniert soweit einwandfrei.
    Habe auch zwei Domains registriert (www.beispieldeutsch.de und www.beispielenglisch.com). Die beiden Domains zeigen auf den gleichen Inhalt. Habe also einen bösen duplicate Content, wenn ich das richtig verstanden habe.
    Würde das gerne umgehen, sodass es auch für den Besucher eindeutig ist: .com ist nur auf englisch verfügbar und .de nur auf deutsch.
    Kann ich das per htaccess einrichten? Habe schon einiges rumprobiert aber es will nicht funktionieren. Dass beispieldeutsch.de auf www.beispieldeutsch.de umgeleitet wird und beispielenglisch.com auf www.beispielenglisch.com hat geklappt. Aber wietere Umleitungen ergeben entweder Endlosschleifen oder gar kein Ergebnis.
    Freue mich über jede Hilfe!
    Einen guten Rutsch..
    Katharina

  2. #2
    Contao-Fan
    Registriert seit
    16.11.2012.
    Ort
    Freiburg
    Beiträge
    539

    Standard

    Hallo Katharina,

    du kannst unter Seitenstruktur deine Domain -> DNS-Einstellungen die Domain hinterlegen.
    So wird die Seite nur mit der Domain erreichbar sein.

  3. #3
    Contao-Nutzer
    Registriert seit
    14.10.2015.
    Beiträge
    37

    Standard

    Danke für deine Antwort,
    ich nutze jedoch die Erweiterung i18nl10n für die verschiedenen Sprachen. Und damit bleibt es bei nur einer Startseite. So kann ich das Problem also nicht lösen.
    Freue mich, falls es noch eine Idee dazu gibt.

  4. #4
    Contao-Nutzer
    Registriert seit
    14.10.2015.
    Beiträge
    37

    Standard

    Hat keiner eine Idee..?
    ich versuche es nun schon seit mehreren Tagen und ich finde immer nur Beispiele, wir man von verschiedenen Domains auf entsprechende Unterordner leitet, zum Beispiel
    Code:
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^(www\.)?domain1\.com
    RewriteRule ^$ index1.html
    RewriteCond %{HTTP_HOST} ^(www\.)?domain2\.com
    RewriteRule ^$ index2.html
    Ich schaffe es jedoch nicht, den Domainnamen vom theoretischen "Unterordner" de bzw. en abhängig zu machen.
    Es geht um meine beiden Domains www.mantidenundmehr.de und www.mantidsandmore.com

    Liebe Grüße,
    Katharina

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.130
    Partner-ID
    10107

    Standard

    Ich weiß leider nicht wie die Extension funktioniert, kann also auch nicht sagen ob und wie man über die .htaccess sowas machen könnte. Ohne diese Extension wäre es kein Problem.

  6. #6
    Contao-Nutzer
    Registriert seit
    14.10.2015.
    Beiträge
    37

    Standard

    Eigentlich ist es ganz einfach:
    Ist man im deutschen, wird der Domain ein /de/ angehängt, im englischen ein /en/.
    Beispiele:
    http://www.mantidenundmehr.de/de/startseite.html oder
    http://www.mantidenundmehr.de/en/home.html

    und der gleiche Inhalt ist momentan auch noch mit der anderen Domain erreichba (was ich gerne verhindert hätte):
    http://www.mantidsandmore.com/de/startseite.html oder
    http://www.mantidsandmore.com/en/home.html

    Also mit /en/ in der Url möchte ich die Domain www.mantidsandmore.com stehen haben, mit /de/ in der Url www.mantidenundmehr.de.

    Theoretisch ganz einfach.. denke ich mir zumindest. Hm.

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.130
    Partner-ID
    10107

    Standard

    Achso, ja dann ist es klar:
    Code:
    RewriteCond %{REQUEST_URI} ^/de/ [NC]
    RewriteCond %{HTTP_HOST} !mantidenundmehr\.de$ [NC]
    RewriteRule (.*) http://www.mantidenundmehr.de/$1 [R=301,L]
    
    RewriteCond %{REQUEST_URI} ^/en/ [NC]
    RewriteCond %{HTTP_HOST} !mantidsandmore\.com$ [NC]
    RewriteRule (.*) http://wwwmantidsandmore.com/$1 [R=301,L]
    (ungetestet)
    Geändert von Spooky (15.01.2016 um 10:24 Uhr)

  8. #8
    Contao-Nutzer
    Registriert seit
    14.10.2015.
    Beiträge
    37

    Standard

    Danke für deine Hilfe,
    leider hat sich jedoch gar nichts geändert (in der letzten Zeile fehlte natürlich ein Punkt nach dem www, den habe ich eingefügt).

    Kann es daran liegen, dass ich weiter oben bereits diese Regelung stehen habe:
    Code:
    RewriteCond %{HTTP_HOST} ^mantidenundmehr\.de$ [NC]
      RewriteRule (.*) http://www.mantidenundmehr.de/$1 [R=301,L]
      RewriteCond %{HTTP_HOST} ^mantidsandmore\.com$ [NC]
      RewriteRule (.*) http://www.mantidsandmore.com/$1 [R=301,L]
    Es liegt jedenfalls nicht daran, dass die htaccess-Datei nicht richtig ausgelesen wird oder so. Bei meinen ganzen bisherigen rewrite-Versuchen gab es immer viel Durcheinander, auch wenn nie das Richtige dabei rausgekommen ist ;-)

    EDIT1:
    Müsste es nicht eher so heißen:
    Code:
    RewriteCond %{REQUEST_URI} ^/en/
    RewriteCond %{HTTP_HOST} !mantidenundmehr\.de$ [NC]
    RewriteRule (.*) http://www.mantidsandmore.com/$1 [R=301,L]
    Daraus würde ich interpretieren: Gibt es ein "/en/" in der Url und ist der Domainname mantidenundmehr.de schreibe diesen Domainnamen um auf mantidsandmore.com.
    Also so hätte ich es gerne. Aber ich habe gerade gestestet und es tut sich ebenfalls nichts. Seltsam.

    EDIT2:
    Vielleicht geht es auch mit redirect? Man kann es ja auch umlenken, da ja beide domains existieren.
    Geändert von Paradoxa (14.01.2016 um 19:41 Uhr)

  9. #9
    Contao-Nutzer
    Registriert seit
    14.10.2015.
    Beiträge
    37

    Standard

    Jetzt bin ich vollkommen verwirrt..
    In der Zeit, wo noch den Rewrite-Versuch in der htaccess stehen hatte, ist ein Besucher mit offensichtlich polnischer Standardsprache des Browsers auf meine Seite gekommen und hatte in der Domain plötzlich ein /pl/ stehen, also:
    www.mantidenundmehr.de/pl/startseite.html
    Das zerschießt natürlich einiges, da die Sprache eigentlich nicht existiert in meiner Contao-Installation.
    Ich vermute und hoffe, dass das nur durch den Rewrite-Versuch geschehen ist. Ich habe ihn danach schnell wieder rausgenommen. Auch wenn ich nicht verstehe, wie das geschehen ist.

    Es tut mir leid wegen dem vielen Text, wo es wohl doch nicht so einfach ist und ich verstehe, wenn mir keiner weiterhelfen kann oder will.
    Aber vielleicht hilft dieser Beitrag anderen weiter ;-)
    Liebe Grüße,
    Katharina

  10. #10
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.130
    Partner-ID
    10107

    Standard

    Zitat Zitat von Paradoxa Beitrag anzeigen
    leider hat sich jedoch gar nichts geändert (in der letzten Zeile fehlte natürlich ein Punkt nach dem www, den habe ich eingefügt).
    Poste mal die gesamte .htaccess


    Zitat Zitat von Paradoxa Beitrag anzeigen
    Kann es daran liegen, dass ich weiter oben bereits diese Regelung stehen habe:
    Code:
    RewriteCond %{HTTP_HOST} ^mantidenundmehr\.de$ [NC]
      RewriteRule (.*) http://www.mantidenundmehr.de/$1 [R=301,L]
      RewriteCond %{HTTP_HOST} ^mantidsandmore\.com$ [NC]
      RewriteRule (.*) http://www.mantidsandmore.com/$1 [R=301,L]
    Nein, das passt so, das sollst du auch drin haben.


    Zitat Zitat von Paradoxa Beitrag anzeigen
    EDIT1:
    Müsste es nicht eher so heißen:
    Code:
    RewriteCond %{REQUEST_URI} ^/en/ [NC]
    RewriteCond %{HTTP_HOST} !mantidenundmehr\.de$ [NC]
    RewriteRule (.*) http://www.mantidsandmore.com/$1 [R=301,L]
    Daraus würde ich interpretieren: Gibt es ein "/en/" in der Url und ist der Domainname mantidenundmehr.de schreibe diesen Domainnamen um auf mantidsandmore.com.
    Also so hätte ich es gerne. Aber ich habe gerade gestestet und es tut sich ebenfalls nichts. Seltsam.
    Nein, nochmal zur Erklärung:
    Code:
    RewriteCond %{REQUEST_URI} ^/en/
    RewriteCond %{HTTP_HOST} !mantidsandmore\.com$ [NC]
    RewriteRule (.*) http://www.mantidsandmore.com/$1 [R=301,L]
    Bedeutet übersetzt:
    • Wenn am Beginn der Request URI die Zeichenfolge "/en/" vorkommt
    • und der HTTP Host nicht mantidsandmore.com ist (egal ob mit oder ohne www)
    • dann erzeuge einen 301 Redirect auf http://wwwmantidsandmore.com/ mit der Request URI



    Zitat Zitat von Paradoxa Beitrag anzeigen
    EDIT2:
    Vielleicht geht es auch mit redirect? Man kann es ja auch umlenken, da ja beide domains existieren.
    Diese Rewrite Rules erzeugen ja einen Redirect
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Spooky (15.01.2016 um 10:40 Uhr)

  11. #11
    Contao-Nutzer
    Registriert seit
    14.10.2015.
    Beiträge
    37

    Standard

    Achso, das Ausrufezeichen bedeutet "nicht".. kenne ich irgendwoher :-D
    Dann macht es Sinn.

    Hier meine gesamte .htaccess

    Code:
    ##
    # Contao Open Source CMS
    #
    # Copyright (c) 2005-2015 Leo Feyer
    #
    # @license LGPL-3.0+
    ##
    
    #eigener code
    ErrorDocument 403 /index.php
    ErrorDocument 404 /index.php
    
    ##
    # Prevent access to the Contao template files
    ##
    <FilesMatch "\.(tpl|html5|xhtml)$">
      <IfModule !mod_authz_core.c>
        Order deny,allow
        Deny from all
      </IfModule>
      <IfModule mod_authz_core.c>
        Require all denied
      </IfModule>
    </FilesMatch>
    
    ##
    # Allow access from all domains for webfonts
    # @see https://github.com/h5bp/html5-boilerplate
    ##
    <IfModule mod_headers.c>
      <FilesMatch "\.(ttf|ttc|otf|eot|woff2?|font\.css)$">
        Header set Access-Control-Allow-Origin "*"
      </FilesMatch>
    </IfModule>
    
    ##
    # Disable ETags
    # @see http://developer.yahoo.com/performance/rules.html#etags
    ##
    FileETag None
    <IfModule mod_headers.c>
      Header unset ETag
    </IfModule>
    
    ##
    # Set the proper MIME types
    # @see https://github.com/h5bp/html5-boilerplate
    ##
    <IfModule mod_mime.c>
      AddType application/javascript              js jsonp
      AddType application/json                    json
      AddType audio/ogg                           oga ogg
      AddType audio/mp4                           m4a f4a f4b
      AddType video/ogg                           ogv
      AddType video/mp4                           mp4 m4v f4v f4p
      AddType video/webm                          webm
      AddType video/x-flv                         flv
      AddType image/svg+xml                       svg svgz
      AddEncoding gzip                            svgz
      AddType application/vnd.ms-fontobject       eot
      AddType application/x-font-ttf              ttf ttc
      AddType font/opentype                       otf
      AddType application/x-font-woff             woff woff2
      AddType image/x-icon                        ico
      AddType image/webp                          webp
      AddType text/cache-manifest                 appcache manifest
      AddType text/x-component                    htc
      AddType application/xml                     rss atom xml rdf
      AddType application/x-web-app-manifest+json webapp
      AddType text/x-vcard                        vcf
      AddType application/x-shockwave-flash       swf
    </IfModule>
    
    ##
    # Gzip compression
    # @see https://github.com/h5bp/html5-boilerplate
    ##
    <IfModule mod_deflate.c>
      <IfModule mod_filter.c>
        AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
        AddOutputFilterByType DEFLATE application/javascript
        AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
        AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml
        AddOutputFilterByType DEFLATE image/x-icon image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
      </IfModule>
    </IfModule>
    
    ##
    # Expires headers (for better cache control)
    # @see https://github.com/h5bp/html5-boilerplate
    ##
    <IfModule mod_expires.c>
      ExpiresActive on
    
      ##
      # Productional website
      ##
      ExpiresByType text/cache-manifest           "access plus 0 seconds"
      ExpiresByType text/html                     "access plus 0 seconds"
      ExpiresByType text/xml                      "access plus 0 seconds"
      ExpiresByType application/xml               "access plus 0 seconds"
      ExpiresByType application/json              "access plus 0 seconds"
      ExpiresByType application/rss+xml           "access plus 1 hour"
      ExpiresByType application/atom+xml          "access plus 1 hour"
      ExpiresByType image/gif                     "access plus 1 month"
      ExpiresByType image/png                     "access plus 1 month"
      ExpiresByType image/jpeg                    "access plus 1 month"
      ExpiresByType image/x-icon                  "access plus 1 month"
      ExpiresByType video/ogg                     "access plus 1 month"
      ExpiresByType audio/ogg                     "access plus 1 month"
      ExpiresByType video/mp4                     "access plus 1 month"
      ExpiresByType video/webm                    "access plus 1 month"
      ExpiresByType text/x-component              "access plus 1 month"
      ExpiresByType application/x-font-ttf        "access plus 1 month"
      ExpiresByType font/opentype                 "access plus 1 month"
      ExpiresByType application/x-font-woff       "access plus 1 month"
      ExpiresByType image/svg+xml                 "access plus 1 month"
      ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
      ExpiresByType text/css                      "access plus 1 year"
      ExpiresByType application/javascript        "access plus 1 year"
    
      ##
      # Disable caching during development
      # @see https://github.com/contao/core/issues/4364
      ##
      #ExpiresByType text/cache-manifest           "access"
      #ExpiresByType text/html                     "access"
      #ExpiresByType text/xml                      "access"
      #ExpiresByType application/xml               "access"
      #ExpiresByType application/json              "access"
      #ExpiresByType application/rss+xml           "access"
      #ExpiresByType application/atom+xml          "access"
      #ExpiresByType image/gif                     "access"
      #ExpiresByType image/png                     "access"
      #ExpiresByType image/jpeg                    "access"
      #ExpiresByType image/x-icon                  "access"
      #ExpiresByType video/ogg                     "access"
      #ExpiresByType audio/ogg                     "access"
      #ExpiresByType video/mp4                     "access"
      #ExpiresByType video/webm                    "access"
      #ExpiresByType text/x-component              "access"
      #ExpiresByType application/x-font-ttf        "access"
      #ExpiresByType font/opentype                 "access"
      #ExpiresByType application/x-font-woff       "access"
      #ExpiresByType image/svg+xml                 "access"
      #ExpiresByType application/vnd.ms-fontobject "access"
      #ExpiresByType text/css                      "access"
      #ExpiresByType application/javascript        "access"
    
    </IfModule>
    
    ##
    # Header adjustments
    ##
    <IfModule mod_headers.c>
    
      ##
      # Disable caching during development
      # @see https://github.com/contao/core/issues/4364
      ##
      #Header unset Cache-Control
      #Header append Cache-Control must-revalidate
    
      ##
      # Do not cache the cron.txt file
      # @see https://github.com/contao/core/issues/5105
      ##
      <FilesMatch "cron\.txt$">
        Header set Cache-Control "no-cache, no-store, must-revalidate, max-age=0, proxy-revalidate, no-transform"
      </FilesMatch>
    
      ##
      # Add a Vary Accept-Encoding header for the compressed resources. If you
      # modify the file types above, make sure to change them here accordingly.
      # @see http://developer.yahoo.com/performance/rules.html#gzip
      #
      # Note: If you are using a case-sensitive file system like HFS+ or ext4, you
      # have to change the <FilesMatch> directive as follows:
      #
      # <FilesMatch "\.(?i:js|css|xml|gz|svgz)$">
      #
      # For more information see: https://github.com/contao/core/issues/4364
      ##
      <FilesMatch "\.(js|css|xml|gz|svgz)$">
        Header append Vary Accept-Encoding
      </FilesMatch>
    
    </IfModule>
    
    ##
    # Disable MultiViews if you are having issues with requests returning the wrong
    # page. Requires AllowOverride Options=All,MultiViews to be set here.
    # @see https://github.com/contao/core/issues/3521
    ##
    #Options -MultiViews
    
    ##
    # URL rewriting
    ##
    <IfModule mod_rewrite.c>
      RewriteEngine On
    
      ##
      # Change the RewriteBase if your Contao installation is in a subdirectoy and
      # the rewrite rules are not working properly. Usage examples:
      #
      #   RewriteBase /contao-3.0.0
      #   RewriteBase /path/to/contao
      #
      # Depending on your server, you might have to remove the line entirely.
      ##
      RewriteBase /
    
      ##
      # Uncomment the following lines to add "www." to the domain:
      #
      RewriteCond %{HTTP_HOST} ^mantidenundmehr\.de$ [NC]
      RewriteRule (.*) http://www.mantidenundmehr.de/$1 [R=301,L]
      RewriteCond %{HTTP_HOST} ^mantidsandmore\.com$ [NC]
      RewriteRule (.*) http://www.mantidsandmore.com/$1 [R=301,L]
    
      #
      # Uncomment the following lines to remove "www." from the domain:
      #
      #   RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
      #   RewriteRule (.*) http://example.com/$1 [R=301,L]
      #
      # Make sure to replace "example.com" with your domain name.
      ##
    
      ##
      # If you cannot use mod_deflate, uncomment the following lines to load a
      # compressed .gz version of the aggregated Contao JavaScript and CSS files.
      ##
      #AddEncoding gzip .gz
      #<FilesMatch "\.js\.gz$">
      #  AddType "application/javascript" .gz
      #</FilesMatch>
      #<FilesMatch "\.css\.gz$">
      #  AddType "text/css" .gz
      #</FilesMatch>
      #RewriteCond %{HTTP:Accept-encoding} gzip
      #RewriteCond %{REQUEST_FILENAME} \.(js|css)$
      #RewriteCond %{REQUEST_FILENAME}.gz -f
      #RewriteRule ^(.*)$ $1.gz [QSA,L]
    
      ##
      # 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 .*\.txt$ index.php [L]    # URL suffix .txt
      #   RewriteRule .*\.json$ index.php [L]   # URL suffix .json
      #
      # If you do not want to use an URL suffix at all, you have to add a third
      # line to prevent URLs that point to folders from being rewritten (see #4031).
      #
      #   RewriteCond %{REQUEST_FILENAME} !-d
      #   RewriteRule .* index.php [L]
      #
      # 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.
      ##
      RewriteCond %{REQUEST_FILENAME} !\.(htm|php|js|css|htc|png|gif|jpe?g|ico|xml|csv|txt|swf|flv|mp4|webm|ogv|mp3|ogg|oga|eot|otf|tt[cf]|woff2?|svgz?|pdf|gz)$
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule .*\.html$ index.php [L]
    
      ##
      # The following rules are required if you want to pass the language as first
      # URL parameter (added in Contao 2.11). The first rule rewrites the empty URL
      # to the front end controller, the second one adds a missing trailing slash.
      ##
      RewriteRule ^[a-z]{2}(\-[A-Z]{2})?/$ index.php [L]
      RewriteRule ^([a-z]{2}(\-[A-Z]{2})?)$ $1/ [R=301,L]
      
      ##
      #Eigener code (geht nicht)
    #RewriteCond %{REQUEST_URI} ^/de/ [NC]
    #RewriteCond %{HTTP_HOST} !mantidenundmehr\.de$ [NC]
    #RewriteRule (.*) http://www.mantidenundmehr.de/$1 [R=301,L]
    
    #RewriteCond %{REQUEST_URI} ^/en/ [NC]
    #RewriteCond %{HTTP_HOST} !mantidsandmore\.com$ [NC]
    #RewriteRule (.*) http://www.mantidsandmore.com/$1 [R=301,L]
    </IfModule>
    Tausend Dank für die Bemühungen!

  12. #12
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.130
    Partner-ID
    10107

    Standard

    Dieser Code:
    Code:
    RewriteCond %{REQUEST_URI} ^/de/ [NC]
    RewriteCond %{HTTP_HOST} !mantidenundmehr\.de$ [NC]
    RewriteRule (.*) http://www.mantidenundmehr.de/$1 [R=301,L]
    
    RewriteCond %{REQUEST_URI} ^/en/ [NC]
    RewriteCond %{HTTP_HOST} !mantidsandmore\.com$ [NC]
    RewriteRule (.*) http://www.mantidsandmore.com/$1 [R=301,L]
    gehört natürlich vor den RewriteRules für die index.php. Am besten setzt du den Code noch vor
    Code:
      RewriteCond %{HTTP_HOST} ^mantidenundmehr\.de$ [NC]
      RewriteRule (.*) http://www.mantidenundmehr.de/$1 [R=301,L]
      RewriteCond %{HTTP_HOST} ^mantidsandmore\.com$ [NC]
      RewriteRule (.*) http://www.mantidsandmore.com/$1 [R=301,L]
    (da ansonsten unnötigerweise evt. zwei Redirects passieren)

  13. #13
    Contao-Nutzer
    Registriert seit
    14.10.2015.
    Beiträge
    37

    Standard

    OMG es funktioniert.
    Vielen lieben Dank Spooky.. was bin ich froh!

    Es funktioniert erstaunlicherweise sogar, wenn man nur www.mantidenundmher.de angibt, dass die Deutsche Sprache gewählt wird. Mit www.mantidsandmore.com entsprechend die Englische. Perfekt!


    EDIT: Ich nehme den folgenden Test zurück.. das Problem wurde ja schon behoben!
    Ich frage mich jedoch, ob das immer noch einen doppelten Inhalt erzeugt, wodurch man von Suchmaschinen gemobbt wird? Weil die gleiche Startseite auch mit (Beispiel für deutsch) www.mantidenundmehr.de/de/startseite.html angezeigt wird.
    Ich werde selbst versuchen, das zu lösen. ;-)


    Ganz liebe Grüße,
    Katharina
    Geändert von Paradoxa (15.01.2016 um 11:44 Uhr)

  14. #14
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.130
    Partner-ID
    10107

    Standard

    Du solltest deiner Startseite den Alias "index" geben.

  15. #15
    Contao-Nutzer
    Registriert seit
    14.10.2015.
    Beiträge
    37

    Standard

    Ich schon wieder.. es scheint doch nicht ganz wie gewollt zu funktionieren mit der Startseite.
    Klickt man auf das Logo wird man zur Domain weitergeleitet (also www.mantidenundmehr.de und das bleibt auch so stehen).
    Klickt man jedoch auf "Start" in meiner Hauptnavigation steht in der Url http://www.mantidenundmehr.de/de/index.html.

    Der Startpunkt der Website hat den Seitenalias "startseite". Die erste Seite in diesem Seitenbaum, also meine eigentlich Startseite als reguläre Seite hat den Seitenalias "index".

    Ich habe aber schon ein ganz schlechtes Gewissen, weil ich hier ständig Fragen stelle und ich bis jetzt selbst noch keinem helfen konnte. Das momentane Problem ist auch nicht so dringend und ich werde mich weiter selbst daran versuchen :-)

  16. #16
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.130
    Partner-ID
    10107

    Standard

    Mit der .htaccess hat das im übrigen alles nichts mehr zu tun . Welche Contao Version verwendest du? Eigentlich sollte Contao für eine Seite, die den Alias "index" hat, gar kein URL Fragment generieren.

  17. #17
    Contao-Nutzer
    Registriert seit
    14.10.2015.
    Beiträge
    37

    Standard

    Contao-Version: 3.5.6

    In den Systemeinstellungen Häkchen gesetzt bei:
    -Urls umschreiben
    -Auto_item aktivieren
    -Ordner-Urls verwenden

    Url-Suffix: .html

    Die Sprache zur URL hinzufügen:
    als Teil der URL (z.B. mypage.com/en/index.html)

  18. #18
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.130
    Partner-ID
    10107

    Standard

    Könnte natürlich sein, dass da die i18ln10 Extension dazwischen funkt, aber dafür kenne ich die Extension zu wenig.

  19. #19
    Contao-Nutzer
    Registriert seit
    14.10.2015.
    Beiträge
    37

    Standard

    Wahrscheinlich.. Wenn ich eine Lösung finde, werde ich sie hier posten.

  20. #20
    Contao-Nutzer
    Registriert seit
    14.10.2015.
    Beiträge
    37

    Standard

    Also wenn die Contao-Eigene Lösung mit dem Alias "index" aus irgendwelchen Gründen nicht dazu führt, dass auf der Startseite nur die Domain ohne weitere Pfade angegeben wird...
    Hier eine einfache Redirect-Lösung (Beispiel), die zumindest bei mir funktioniert:
    Code:
    Redirect /index.html http://www.meine-domain.de
    Liebe Grüße und nochmal vielen Dank für die Unterstützung!

  21. #21
    Contao-Nutzer
    Registriert seit
    14.10.2015.
    Beiträge
    37

    Standard Google Problem

    Jetzt habe ich noch ein Problem mit Google...
    Google indiziert meine deutsche Domain www.mantidenundmehr.de mit englischem Inhalt.

    Habe diese Weiterleitungen in die htaccess vor die anderen Redirect-Anweisungen geschrieben und es funktioniert für einen normalen Besucher auch wie gewollt. Google ignoriert aber wohl diese Anweisung:

    Code:
    RewriteCond %{HTTP_HOST} ^mantidenundmehr.de$
    RewriteRule ^.*/$ de/index.html [R=301,L]
    RewriteCond %{HTTP_HOST} ^mantidsandmore.com$
    RewriteRule ^.*/$ en/home.html [R=301,L]
    Weiß jemand, warum das ein Google Crawler ignoriert?
    Das wäre dann auch hoffentlich mein letztes Rewrite-Problem ;-)

    Liebe Grüße,
    Katharina

  22. #22
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.130
    Partner-ID
    10107

    Standard

    Google ignoriert das nicht. Was genau Google "sieht" kannst du über die Google Webmaster Tools herausfinden (zB fetch as Google). Dass noch die englischen Inhalte über die Deutsche Domain indexiert sind liegt wohl einfach daran, dass Google seit der Umstellung deine Seite noch nicht neu gecrawled hat. Wenn du über die Google Webmaster Tools eine korrekte Sitemap submittest, könntest du es beschleunigen.

  23. #23
    Contao-Nutzer
    Registriert seit
    14.10.2015.
    Beiträge
    37

    Standard

    Das hatte ich missverständlich geschrieben:
    Ich habe über die Webmaster-Tools "Abruf wie durch Google" für die deutsche Domain gewählt.

    So langsam wird es unübersichtlich..
    Was ich gerne hätte und wie ich es probiert habe (in der .htaccess von oben nach unten):

    - Beim Aufruf der beiden Domains sollen jeweils die Startseiten der entsprechenden Sprache geladen werden (scheint nicht korrekt zu funktionieren)
    Code:
    RewriteCond %{HTTP_HOST} ^mantidenundmehr.de$
    RewriteRule ^.*/$ de/index.html [R=301,L]
    RewriteCond %{HTTP_HOST}   ^mantidsandmore.\com$
    RewriteRule ^.*/$ en/home.html [R=301,L]
    - Die Startseiten sollen aber nicht in der Url sichtbar sein (dort soll nur die reine Domain stehen) (funktioniert auch nicht.. außerdem hätte ich da natürlich gerne eine dauerhafte umleitung)
    Code:
    Redirect /de/index.html http://www.mantidenundmehr.de
    Redirect /en/home.html http://www.mantidsandmore.com
    - Je nach Sprache (/de/ oder /en/ hinter der Domain) sollen die entsprechenden Domains geladen werden (Danke Spooky, das funktioniert)
    Code:
    RewriteCond %{REQUEST_URI} ^/de/ [NC]
    RewriteCond %{HTTP_HOST} !mantidenundmehr\.de$ [NC]
    RewriteRule (.*) http://www.mantidenundmehr.de/$1 [R=301,L]
    
    RewriteCond %{REQUEST_URI} ^/en/ [NC]
    RewriteCond %{HTTP_HOST} !mantidsandmore\.com$ [NC]
    RewriteRule (.*) http://www.mantidsandmore.com/$1 [R=301,L]
    - Alle Urls sollen immer mit www geladen werden (funktioniert)
    Code:
    RewriteCond %{HTTP_HOST} ^mantidenundmehr\.de$ [NC]
    RewriteRule (.*) http://www.mantidenundmehr.de/$1 [R=301,L]
    RewriteCond %{HTTP_HOST} ^mantidsandmore\.com$ [NC]
    RewriteRule (.*) http://www.mantidsandmore.com/$1 [R=301,L]
    -Hier noch zwei Ausschnitte, die im Contao Backend eingestellt wurden:
    Code:
      RewriteCond %{REQUEST_FILENAME} !\.(htm|php|js|css|htc|png|gif|jpe?g|ico|xml|csv|txt|swf|flv|mp4|webm|ogv|mp3|ogg|oga|eot|otf|tt[cf]|woff2?|svgz?|pdf|gz)$
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule .*\.html$ index.php [L]
    
      ##
      # The following rules are required if you want to pass the language as first
      # URL parameter (added in Contao 2.11). The first rule rewrites the empty URL
      # to the front end controller, the second one adds a missing trailing slash.
      ##
      RewriteRule ^[a-z]{2}(\-[A-Z]{2})?/$ index.php [L]
      RewriteRule ^([a-z]{2}(\-[A-Z]{2})?)$ $1/ [R=301,L]
    Ich denke, es sind zu viele Umleitungen und hoffe, das das einfacher geht. Die Reihenfolge ist wahrscheinlich auch nicht optimal.
    Bin ratlos und über jeden Tipp dankbar!

  24. #24
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.130
    Partner-ID
    10107

    Standard

    Zitat Zitat von Paradoxa Beitrag anzeigen
    - Beim Aufruf der beiden Domains sollen jeweils die Startseiten der entsprechenden Sprache geladen werden (scheint nicht korrekt zu funktionieren)
    Code:
    RewriteCond %{HTTP_HOST} ^mantidenundmehr.de$
    RewriteRule ^.*/$ de/index.html [R=301,L]
    RewriteCond %{HTTP_HOST}   ^mantidsandmore.\com$
    RewriteRule ^.*/$ en/home.html [R=301,L]
    Das würde ich so nicht machen, denn so wie du das jetzt geschrieben hast, greift das nur wenn du http://mantidenundmehr.de/ aufrufst. http://www.mantidenundmehr.de/ oder http://mantidenundmehr.de funktionieren nicht. Darüberhinaus stimmt der Redirect wahrscheinlich nicht. Die Rule für mantidsandmore.com funktioniert wahrscheinlich gar nicht. Richtiger wäre:
    Code:
    RewriteCond %{HTTP_HOST} mantidenundmehr\.de$
    RewriteRule ^$ http://www.mantidenundmehr.de/de/index.html [R=301,L]
    RewriteCond %{HTTP_HOST} mantidsandmore\.com$
    RewriteRule ^$ http://www.mantidsandmore.com/en/home.html [R=301,L]
    Du solltest deine .htaccess Rules lieber immer zuerst auf bspw. http://htaccess.mwl.be/ testen.


    Zitat Zitat von Paradoxa Beitrag anzeigen
    - Die Startseiten sollen aber nicht in der Url sichtbar sein (dort soll nur die reine Domain stehen) (funktioniert auch nicht.. außerdem hätte ich da natürlich gerne eine dauerhafte umleitung)
    Code:
    Redirect /de/index.html http://www.mantidenundmehr.de
    Redirect /en/home.html http://www.mantidsandmore.com
    Das geht nicht. Wenn deine Rewrite Rules korrekt wären, würdest du dir damit einen unendlichen Redirect erzeugen. http://www.mantidenundmehr.de » http://www.mantidenundmehr.de/de/index.html » http://www.mantidenundmehr.de » http://www.mantidenundmehr.de/de/index.html » …


    » Das was du eigentlich brauchst ist eine Konfiguration oder eigene Programmierung in Contao. Wenn ein User über mantidenundmehr.de kommt, Contao aber die englische Sprache auswählt (wegen der HTTP Accept-Language), dann soll Contao einen Redirect auf mantidsandmore.com erzeugen. Etwa in der Art:
    PHP-Code:
    if( stripos( \Environment::get('host'), 'mantidenundmehr.de' ) !== false && !\Environment::get('request') && $GLOBALS['TL_LANGUAGE'] == 'en' )
    {
        
    header('Location: http://www.mantidsandmore.com');
        exit;
    }

    if( 
    stripos( \Environment::get('host'), 'mantidsandmore.com' ) !== false && !\Environment::get('request') && $GLOBALS['TL_LANGUAGE'] == 'de' )
    {
        
    header('Location: http://www.mantidenundmehr.de');
        exit;

    (ungetestet)

    All diese Probleme hättest du nicht, wenn du ganz normal zwei Seitenbäume in Contao verwenden würdest, anstatt der i18nl10n Extension
    Geändert von Spooky (25.01.2016 um 09:17 Uhr)

  25. #25
    Contao-Nutzer
    Registriert seit
    14.10.2015.
    Beiträge
    37

    Standard

    Okay,
    .htaccess rules werden ab jetzt getestet! :-)

    Dein Code funktioniert mal wieder wunderbar Spooky.. wie kann ich danken? Hast du irgendwo einen Paypal-"Spenden"-Button verlinkt oder so etwas?

    Trotzdem ist es natürlich unschön, wenn die beiden Root-Domains nicht mehr wirklich alleine aufrufbar sind sondern immer ein Pfad dahinter erscheint.
    Gibt es eine Möglichkeit, den Pfad in diesem Fall zu verstecken?
    Ich habe gelesen, dass es so funktionieren sollte, tut es aber nicht:

    Code:
    RewriteCond %{HTTP_HOST} mantidenundmehr\.de$
    RewriteRule ^$ http://www.mantidenundmehr.de/de/index.html [L]
    RewriteCond %{HTTP_HOST} mantidsandmore\.com$
    RewriteRule ^$ http://www.mantidsandmore.com/en/home.html [L]
    Wenn das mit der versteckten Weiterleitung klappen würde, hätte ich ja wieder doppelten Content, aber das könnte ich vielleicht mit "canonical" lösen.

    Und ja, du hast Recht. Ohne i18nl10n wäre das alles nicht passiert.. Hätte ich das vorher gewusst!
    Und leider weiß ich nicht, wo deine ungetestete Idee von einer Contao-Configuration unterbringen sollte.

  26. #26
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.130
    Partner-ID
    10107

    Standard

    Zitat Zitat von Paradoxa Beitrag anzeigen
    Okay,
    .htaccess rules werden ab jetzt getestet! :-)

    Dein Code funktioniert mal wieder wunderbar Spooky.. wie kann ich danken? Hast du irgendwo einen Paypal-"Spenden"-Button verlinkt oder so etwas?
    Hier im Forum kann man seine Amazon Wunschliste hinterlegen. Links unter meinen Namen kannst du dort drauf klicken und mir auf diesem Wege etwas spenden


    Zitat Zitat von Paradoxa Beitrag anzeigen
    Trotzdem ist es natürlich unschön, wenn die beiden Root-Domains nicht mehr wirklich alleine aufrufbar sind sondern immer ein Pfad dahinter erscheint.
    Gibt es eine Möglichkeit, den Pfad in diesem Fall zu verstecken?
    Wenn du das PHP Script verwendest, dass ich vorhin geposetet habe, dann solltest du das eigentlich erreichen und kannst auch folgende Redirects entfernen:
    Code:
    RewriteCond %{HTTP_HOST} mantidenundmehr\.de$
    RewriteRule ^$ http://www.mantidenundmehr.de/de/index.html [R=301,L]
    RewriteCond %{HTTP_HOST} mantidsandmore\.com$
    RewriteRule ^$ http://www.mantidsandmore.com/en/home.html [R=301,L]
    Aber wie gesagt, das PHP Script ist ungetestet.


    Zitat Zitat von Paradoxa Beitrag anzeigen
    Und leider weiß ich nicht, wo deine ungetestete Idee von einer Contao-Configuration unterbringen sollte.
    Eine Möglichkeit wäre im Templates Ordner eine neue Datei zu erstellen namens redirect.php und dort das Script hinein kopieren (mit <?php am Anfang). Danach erstellst du dir ein HTML Modul mit dem Inhalt {{file::redirect.php}} und bindest diese in dein Seitenlayout ein. Die Lösung ist aber nicht besonders schon.

  27. #27
    Contao-Nutzer
    Registriert seit
    14.10.2015.
    Beiträge
    37

    Standard

    Wegen der Wunschliste schreibe ich dich noch an, Spooky!

    Das Script scheint leider nicht zu funktionieren.. habe es mal ins fe_page-template eingebunden und auch so versucht, wie du es beschrieben hast (mit {{file::redirect.php}}) aber dann erscheint nur eine leere Seite. Kein html, kein Error im log-file. System cache wurde natürlich geleert vor dem testen und die Redirects kurzfristig entfern.

  28. #28
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.130
    Partner-ID
    10107

    Standard

    Zitat Zitat von Paradoxa Beitrag anzeigen
    Das Script scheint leider nicht zu funktionieren.. habe es mal ins fe_page-template eingebunden und auch so versucht, wie du es beschrieben hast (mit {{file::redirect.php}}) aber dann erscheint nur eine leere Seite. Kein html, kein Error im log-file. System cache wurde natürlich geleert vor dem testen und die Redirects kurzfristig entfern.
    Was genau hast du nun in die Datei geschrieben? Hast du die Datei in UTF-8 ohne BOM abgespeichert? Welchen Editor benutzt du?

  29. #29
    Contao-Nutzer
    Registriert seit
    14.10.2015.
    Beiträge
    37

    Standard

    Ich hatte vorher das hosteurope-internen WebCenter benutzt und dort direkt die Datei erstellt. Allerdings hatte ich es alternativ auch mal direkt ins fe_page-template geschrieben. Mit beiden Malen das geiche Ergebnis (Weiße Seite ohne Fehlermeldung).
    Jetzt habe ich es nochmal probiert: mit Notepad++ eine .php-Datei ohne BOM in UTF-8 und folgendem Inhalt unter redirect.php gespeichert:

    PHP-Code:
    <?php
    if( stripos( \Environment::get('host'), 'mantidenundmehr.de' ) !== false &&!\Environment::get('request') && $GLOBALS['TL_LANGUAGE'] == 'en' )
    {
        
    header('Location: http://www.mantidsandmore.com');
        exit;
    }

    if( 
    stripos( \Environment::get('host'), 'mantidsandmore.com' ) !== false && !\Environment::get('request') && $GLOBALS['TL_LANGUAGE'] == 'de' )
    {
        
    header('Location: http://www.mantidenundmehr.de');
        exit;
    }
    ?>
    Diese Datei per FTP in den template-Ordner des Stammfolders geladen und probeweise in einem Seitenlayout als eigenen HTML-code per {{file::redirect.php}} eingebunden.. Seitencache gelöscht (vom Browser und im BE) und siehe da: Es entsteht keine weiße Seite mehr.
    Vielleicht lag es daran, dass ich zur Sicherheit nochmal alle Klammern (geschweifte und eckige) selbst eingetippt habe.

    Jedoch: Es hat nicht den gewünschten Effekt. Es tut sich nämlich nichts.. Sobald ich die ursprünglichen Redirect-Anweisungen auskommentiere, zeigt sich das Contao-typische Verhalten (->wechselt man die Sprache, bleibt die Domain stehen).

    Ich habe mir schon den HTML-code einer Seite mit entsprechendem Seitenlayout angeschaut, kann da aber nichts von dem Script sehen. Würde man das denn irgendwie erkennen können? Habe den html-code (also das Modul) in der Kopfzeile eingefügt (also im header-Bereich). Wäre das denn der richtige Ort?

  30. #30
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.130
    Partner-ID
    10107

    Standard

    Zitat Zitat von Paradoxa Beitrag anzeigen
    Ich hatte vorher das hosteurope-internen WebCenter benutzt und dort direkt die Datei erstellt.
    Das würde ich nicht machen.


    Zitat Zitat von Paradoxa Beitrag anzeigen
    Allerdings hatte ich es alternativ auch mal direkt ins fe_page-template geschrieben. Mit beiden Malen das geiche Ergebnis (Weiße Seite ohne Fehlermeldung).
    Wie hat der gesamte Inhalt der fe_page Datei ausgesehen? Ohne PHP Programmierkenntnisse sind solche Vorhaben natürlich etwas problematisch.


    Zitat Zitat von Paradoxa Beitrag anzeigen
    Jetzt habe ich es nochmal probiert: mit Notepad++ eine .php-Datei ohne BOM in UTF-8 und folgendem Inhalt unter redirect.php gespeichert:

    PHP-Code:
    <?php
    if( stripos( \Environment::get('host'), 'mantidenundmehr.de' ) !== false &&!\Environment::get('request') && $GLOBALS['TL_LANGUAGE'] == 'en' )
    {
        
    header('Location: http://www.mantidsandmore.com');
        exit;
    }

    if( 
    stripos( \Environment::get('host'), 'mantidsandmore.com' ) !== false && !\Environment::get('request') && $GLOBALS['TL_LANGUAGE'] == 'de' )
    {
        
    header('Location: http://www.mantidenundmehr.de');
        exit;
    }
    ?>
    Das abschließende
    PHP-Code:
    ?> 
    brauchst du nicht, bzw. sollte man sogar weglassen in diesem Fall.


    Zitat Zitat von Paradoxa Beitrag anzeigen
    Sobald ich die ursprünglichen Redirect-Anweisungen auskommentiere, zeigt sich das Contao-typische Verhalten (->wechselt man die Sprache, bleibt die Domain stehen).
    Da stimmt etwas nicht bei dir, denn das sollte ja durch die .htaccess Redirects abgefangen werden. Poste mal deine komplette .htaccess


    Zitat Zitat von Paradoxa Beitrag anzeigen
    Ich habe mir schon den HTML-code einer Seite mit entsprechendem Seitenlayout angeschaut, kann da aber nichts von dem Script sehen.
    PHP ist eine server-seitige Scripting Sprache » https://en.wikipedia.org/wiki/PHP


    Zitat Zitat von Paradoxa Beitrag anzeigen
    Habe den html-code (also das Modul) in der Kopfzeile eingefügt (also im header-Bereich). Wäre das denn der richtige Ort?
    Es ist im Prinzip egal wo du es einbindest. Das Script dienst außerdem nur als konzeptionelles Beispiel, ich habe es nicht selbst getestet.


    Übrigens habe ich bei
    PHP-Code:
    if( stripos( \Environment::get('host'), 'mantidenundmehr.de' ) !== false &&!\Environment::get('request') && $GLOBALS['TL_LANGUAGE'] == 'en' 
    einen Abstand zwischen && und !\Environment::get('request') vergessen, es sollte also
    PHP-Code:
    if( stripos( \Environment::get('host'), 'mantidenundmehr.de' ) !== false && !\Environment::get('request') && $GLOBALS['TL_LANGUAGE'] == 'en' 
    heißen.
    Geändert von Spooky (25.01.2016 um 09:18 Uhr)

  31. #31
    Contao-Nutzer
    Registriert seit
    14.10.2015.
    Beiträge
    37

    Standard

    Im fe_template sah es folgendermaßen aus:
    Code:
    <!DOCTYPE html>
    
    <?php
    if( stripos( \Environment::get('host'), 'mantidenundmehr.de' ) !== false && !\Environment::get('request') && $GLOBALS['TL_LANGUAGE'] == 'en' )
    {
        header('Location: http://www.mantidsandmore.com');
        exit;
    }
    
    if( stripos( \Environment::get('host'), 'mantidsandmore.com' ) !== false && !\Environment::get('request') && $GLOBALS['TL_LANGUAGE'] == 'de' )
    {
        header('Location: http://www.mantidenundmehr.de');
        exit;
    }
    ?> <!--Ohne dises "?>" erscheint wieder eine weiße Seite ohne Fehlermung. Mit dieser Zeile erscheint zumindest keine Fehlermeldung, aber es hat auch keine Auswirkungen-->
    
    <html lang="<?php echo $this->language; ?>">
    
    <head>
    
      <meta charset="<?php echo $this->charset; ?>">
      <title><?php echo $this->pageTitle; ?> - <?php echo $this->mainTitle; ?></title>
      <base href="<?php echo $this->base; ?>">
    
      <meta name="robots" content="<?php echo $this->robots; ?>">
      <meta name="description" content="<?php echo $this->description; ?>">
      <meta name="keywords" content="<?php echo $this->keywords; ?>">
      <meta name="generator" content="Contao Open Source CMS">
    
      <?php echo $this->viewport; ?>
      <?php echo $this->framework; ?>
      <?php echo $this->stylesheets; ?>
      <?php echo $this->mooScripts; ?>
      <?php echo $this->head; ?>
      <!--[if lt IE 9]><script src="<?php echo TL_ASSETS_URL; ?>assets/html5shiv/<?php echo HTML5SHIV; ?>/html5shiv.js"></script><![endif]-->
    
    </head>
    <body id="top" class="{{ua::class}}<?php if ($this->class): ?> <?php echo $this->class; ?><?php endif; ?>"<?php if ($this->onload): ?> onload="<?php echo $this->onload; ?>"<?php endif; ?>>
    
    	<!--[if lt IE 8]>
    		<p>You are using an outdated browser. <a href="http://whatbrowser.org/">Upgrade your browser today</a>.</p>
    	<![endif]-->
    	<?php echo $this->getCustomSections('top') ?>
    
    	<div class="page">
    
    		<?php if ($this->header): ?>
    			<header class="page-header">
    				<?php echo $this->header ?>
    			</header>
    		<?php endif ?>
    
    		<?php echo $this->getCustomSections('before') ?>
    
    		<div class="content-wrapper">
    
    			<section role="main" class="main-content">
    
    				<?php echo $this->main ?>
    
    				<?php echo $this->getCustomSections('main') ?>
    
    			</section>
    
    			<?php if($this->left || $this->right): ?>
    				<aside class="sidebar">
    					<?php echo $this->left ?>
    					<?php echo $this->right ?>
    				</aside>
    			<?php endif ?>
    
    		</div>
    
    		<?php echo $this->getCustomSections('after') ?>
    
    		<?php if ($this->footer): ?>
    			<footer class="page-footer">
    				<?php echo $this->footer ?>
    			</footer>
    		<?php endif ?>
    
    	</div>
    
    	<?php echo $this->getCustomSections('bottom') ?>
    
      <?php echo $this->mootools; ?>
    
      <?php if (!$this->disableCron): ?>
        <script>
          <?php if ($this->layout->addJQuery): ?>
            setTimeout(function(){jQuery.ajax("system/cron/cron.txt",{complete:function(e){var t=e.responseText||0;parseInt(t)<Math.round(+(new Date)/1e3)-<?php echo $this->cronTimeout; ?>&&jQuery.ajax("system/cron/cron.php")}})},5e3)
          <?php else: ?>
            setTimeout(function(){(new Request({url:"system/cron/cron.txt",onComplete:function(e){e||(e=0),parseInt(e)<Math.round(+(new Date)/1e3)-<?php echo $this->cronTimeout; ?>&&(new Request({url:"system/cron/cron.php"})).get()}})).get()},5e3)
          <?php endif; ?>
        </script>
      <?php endif; ?>
    
    </body>
    </html>
    Meine htaccess sieht folgendermaßen aus (das funktioniert aber alles wie gewünscht. Nur dein php-script hat keine Auswirkungen):
    Code:
    ##
    # Contao Open Source CMS
    #
    # Copyright (c) 2005-2015 Leo Feyer
    #
    # @license LGPL-3.0+
    ##
    
    #eigener code
    ErrorDocument 403 /index.php
    ErrorDocument 404 /index.php
    
    ##
    # Prevent access to the Contao template files
    ##
    <FilesMatch "\.(tpl|html5|xhtml)$">
      <IfModule !mod_authz_core.c>
        Order deny,allow
        Deny from all
      </IfModule>
      <IfModule mod_authz_core.c>
        Require all denied
      </IfModule>
    </FilesMatch>
    
    ##
    # Allow access from all domains for webfonts
    # @see https://github.com/h5bp/html5-boilerplate
    ##
    <IfModule mod_headers.c>
      <FilesMatch "\.(ttf|ttc|otf|eot|woff2?|font\.css)$">
        Header set Access-Control-Allow-Origin "*"
      </FilesMatch>
    </IfModule>
    
    ##
    # Disable ETags
    # @see http://developer.yahoo.com/performance/rules.html#etags
    ##
    FileETag None
    <IfModule mod_headers.c>
      Header unset ETag
    </IfModule>
    
    ##
    # Set the proper MIME types
    # @see https://github.com/h5bp/html5-boilerplate
    ##
    <IfModule mod_mime.c>
      AddType application/javascript              js jsonp
      AddType application/json                    json
      AddType audio/ogg                           oga ogg
      AddType audio/mp4                           m4a f4a f4b
      AddType video/ogg                           ogv
      AddType video/mp4                           mp4 m4v f4v f4p
      AddType video/webm                          webm
      AddType video/x-flv                         flv
      AddType image/svg+xml                       svg svgz
      AddEncoding gzip                            svgz
      AddType application/vnd.ms-fontobject       eot
      AddType application/x-font-ttf              ttf ttc
      AddType font/opentype                       otf
      AddType application/x-font-woff             woff woff2
      AddType image/x-icon                        ico
      AddType image/webp                          webp
      AddType text/cache-manifest                 appcache manifest
      AddType text/x-component                    htc
      AddType application/xml                     rss atom xml rdf
      AddType application/x-web-app-manifest+json webapp
      AddType text/x-vcard                        vcf
      AddType application/x-shockwave-flash       swf
    </IfModule>
    
    ##
    # Gzip compression
    # @see https://github.com/h5bp/html5-boilerplate
    ##
    <IfModule mod_deflate.c>
      <IfModule mod_filter.c>
        AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
        AddOutputFilterByType DEFLATE application/javascript
        AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
        AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml
        AddOutputFilterByType DEFLATE image/x-icon image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
      </IfModule>
    </IfModule>
    
    ##
    # Expires headers (for better cache control)
    # @see https://github.com/h5bp/html5-boilerplate
    ##
    <IfModule mod_expires.c>
      ExpiresActive on
    
      ##
      # Productional website
      ##
      ExpiresByType text/cache-manifest           "access plus 0 seconds"
      ExpiresByType text/html                     "access plus 0 seconds"
      ExpiresByType text/xml                      "access plus 0 seconds"
      ExpiresByType application/xml               "access plus 0 seconds"
      ExpiresByType application/json              "access plus 0 seconds"
      ExpiresByType application/rss+xml           "access plus 1 hour"
      ExpiresByType application/atom+xml          "access plus 1 hour"
      ExpiresByType image/gif                     "access plus 1 month"
      ExpiresByType image/png                     "access plus 1 month"
      ExpiresByType image/jpeg                    "access plus 1 month"
      ExpiresByType image/x-icon                  "access plus 1 month"
      ExpiresByType video/ogg                     "access plus 1 month"
      ExpiresByType audio/ogg                     "access plus 1 month"
      ExpiresByType video/mp4                     "access plus 1 month"
      ExpiresByType video/webm                    "access plus 1 month"
      ExpiresByType text/x-component              "access plus 1 month"
      ExpiresByType application/x-font-ttf        "access plus 1 month"
      ExpiresByType font/opentype                 "access plus 1 month"
      ExpiresByType application/x-font-woff       "access plus 1 month"
      ExpiresByType image/svg+xml                 "access plus 1 month"
      ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
      ExpiresByType text/css                      "access plus 1 year"
      ExpiresByType application/javascript        "access plus 1 year"
    
      ##
      # Disable caching during development
      # @see https://github.com/contao/core/issues/4364
      ##
      #ExpiresByType text/cache-manifest           "access"
      #ExpiresByType text/html                     "access"
      #ExpiresByType text/xml                      "access"
      #ExpiresByType application/xml               "access"
      #ExpiresByType application/json              "access"
      #ExpiresByType application/rss+xml           "access"
      #ExpiresByType application/atom+xml          "access"
      #ExpiresByType image/gif                     "access"
      #ExpiresByType image/png                     "access"
      #ExpiresByType image/jpeg                    "access"
      #ExpiresByType image/x-icon                  "access"
      #ExpiresByType video/ogg                     "access"
      #ExpiresByType audio/ogg                     "access"
      #ExpiresByType video/mp4                     "access"
      #ExpiresByType video/webm                    "access"
      #ExpiresByType text/x-component              "access"
      #ExpiresByType application/x-font-ttf        "access"
      #ExpiresByType font/opentype                 "access"
      #ExpiresByType application/x-font-woff       "access"
      #ExpiresByType image/svg+xml                 "access"
      #ExpiresByType application/vnd.ms-fontobject "access"
      #ExpiresByType text/css                      "access"
      #ExpiresByType application/javascript        "access"
    
    </IfModule>
    
    ##
    # Header adjustments
    ##
    <IfModule mod_headers.c>
    
      ##
      # Disable caching during development
      # @see https://github.com/contao/core/issues/4364
      ##
      #Header unset Cache-Control
      #Header append Cache-Control must-revalidate
    
      ##
      # Do not cache the cron.txt file
      # @see https://github.com/contao/core/issues/5105
      ##
      <FilesMatch "cron\.txt$">
        Header set Cache-Control "no-cache, no-store, must-revalidate, max-age=0, proxy-revalidate, no-transform"
      </FilesMatch>
    
      ##
      # Add a Vary Accept-Encoding header for the compressed resources. If you
      # modify the file types above, make sure to change them here accordingly.
      # @see http://developer.yahoo.com/performance/rules.html#gzip
      #
      # Note: If you are using a case-sensitive file system like HFS+ or ext4, you
      # have to change the <FilesMatch> directive as follows:
      #
      # <FilesMatch "\.(?i:js|css|xml|gz|svgz)$">
      #
      # For more information see: https://github.com/contao/core/issues/4364
      ##
      <FilesMatch "\.(js|css|xml|gz|svgz)$">
        Header append Vary Accept-Encoding
      </FilesMatch>
    
    </IfModule>
    
    ##
    # Disable MultiViews if you are having issues with requests returning the wrong
    # page. Requires AllowOverride Options=All,MultiViews to be set here.
    # @see https://github.com/contao/core/issues/3521
    ##
    #Options -MultiViews
    
    ##
    # URL rewriting
    ##
    <IfModule mod_rewrite.c>
      RewriteEngine On
    
      ##
      # Change the RewriteBase if your Contao installation is in a subdirectoy and
      # the rewrite rules are not working properly. Usage examples:
      #
      #   RewriteBase /contao-3.0.0
      #   RewriteBase /path/to/contao
      #
      # Depending on your server, you might have to remove the line entirely.
      ##
      RewriteBase /
       
      #Eigener code (funktioniert)
    
    RewriteCond %{HTTP_HOST} mantidenundmehr\.de$
    RewriteRule ^$ http://www.mantidenundmehr.de/de/index.html [R=301,L]
    RewriteCond %{HTTP_HOST} mantidsandmore\.com$
    RewriteRule ^$ http://www.mantidsandmore.com/en/home.html [R=301,L]
    
    #eigener code
    RewriteCond %{REQUEST_URI} ^/de/ [NC]
    RewriteCond %{HTTP_HOST} !mantidenundmehr\.de$ [NC]
    RewriteRule (.*) http://www.mantidenundmehr.de/$1 [R=301,L]
    
    RewriteCond %{REQUEST_URI} ^/en/ [NC]
    RewriteCond %{HTTP_HOST} !mantidsandmore\.com$ [NC]
    RewriteRule (.*) http://www.mantidsandmore.com/$1 [R=301,L]
    
      ##
      # Uncomment the following lines to add "www." to the domain:
      #
      RewriteCond %{HTTP_HOST} ^mantidenundmehr\.de$ [NC]
      RewriteRule (.*) http://www.mantidenundmehr.de/$1 [R=301,L]
      RewriteCond %{HTTP_HOST} ^mantidsandmore\.com$ [NC]
      RewriteRule (.*) http://www.mantidsandmore.com/$1 [R=301,L]
    
      #
      # Uncomment the following lines to remove "www." from the domain:
      #
      #   RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
      #   RewriteRule (.*) http://example.com/$1 [R=301,L]
      #
      # Make sure to replace "example.com" with your domain name.
      ##
    
      ##
      # If you cannot use mod_deflate, uncomment the following lines to load a
      # compressed .gz version of the aggregated Contao JavaScript and CSS files.
      ##
      #AddEncoding gzip .gz
      #<FilesMatch "\.js\.gz$">
      #  AddType "application/javascript" .gz
      #</FilesMatch>
      #<FilesMatch "\.css\.gz$">
      #  AddType "text/css" .gz
      #</FilesMatch>
      #RewriteCond %{HTTP:Accept-encoding} gzip
      #RewriteCond %{REQUEST_FILENAME} \.(js|css)$
      #RewriteCond %{REQUEST_FILENAME}.gz -f
      #RewriteRule ^(.*)$ $1.gz [QSA,L]
    
      ##
      # 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 .*\.txt$ index.php [L]    # URL suffix .txt
      #   RewriteRule .*\.json$ index.php [L]   # URL suffix .json
      #
      # If you do not want to use an URL suffix at all, you have to add a third
      # line to prevent URLs that point to folders from being rewritten (see #4031).
      #
      #   RewriteCond %{REQUEST_FILENAME} !-d
      #   RewriteRule .* index.php [L]
      #
      # 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.
      ##
      RewriteCond %{REQUEST_FILENAME} !\.(htm|php|js|css|htc|png|gif|jpe?g|ico|xml|csv|txt|swf|flv|mp4|webm|ogv|mp3|ogg|oga|eot|otf|tt[cf]|woff2?|svgz?|pdf|gz)$
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule .*\.html$ index.php [L]
    
      ##
      # The following rules are required if you want to pass the language as first
      # URL parameter (added in Contao 2.11). The first rule rewrites the empty URL
      # to the front end controller, the second one adds a missing trailing slash.
      ##
      RewriteRule ^[a-z]{2}(\-[A-Z]{2})?/$ index.php [L]
      RewriteRule ^([a-z]{2}(\-[A-Z]{2})?)$ $1/ [R=301,L]
     
    
    
    </IfModule>

  32. #32
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.130
    Partner-ID
    10107

    Standard

    Wegen
    Code:
    RewriteCond %{HTTP_HOST} mantidenundmehr\.de$
    RewriteRule ^$ http://www.mantidenundmehr.de/de/index.html [R=301,L]
    RewriteCond %{HTTP_HOST} mantidsandmore\.com$
    RewriteRule ^$ http://www.mantidsandmore.com/en/home.html [R=301,L]
    in deiner .htaccess kann das PHP Script auch keine Auswirkung haben (sofern es korrekt programmiert wurde). Das PHP Script besagt ja übersetzt:

    Wenn der HTTP Host mantidenundmehr.de ist und der Request String leer ist und die von Contao automatisch ausgewählte Sprache jedoch Englisch ist, dann leite auf http://www.mantidsandmore.com weiter.

    Durch die genannte RewriteRule ist der Request String jedoch nie leer (weil immer zumindest /de/index.html oder /en/home.html drin steht).


    Eigentlich sollte man das PHP Script so schreiben, damit es das gleiche Konzept verfolgt, wie folgende Regeln:
    Code:
    RewriteCond %{REQUEST_URI} ^/de/ [NC]
    RewriteCond %{HTTP_HOST} !mantidenundmehr\.de$ [NC]
    RewriteRule (.*) http://www.mantidenundmehr.de/$1 [R=301,L]
    
    RewriteCond %{REQUEST_URI} ^/en/ [NC]
    RewriteCond %{HTTP_HOST} !mantidsandmore\.com$ [NC]
    RewriteRule (.*) http://www.mantidsandmore.com/$1 [R=301,L]
    Also zB:
    PHP-Code:
    if( stripos( \Environment::get('host'), 'mantidenundmehr.de' ) === false && !\Environment::get('request') && $GLOBALS['TL_LANGUAGE'] == 'de' )
    {
        
    header('Location: http://www.mantidenundmehr.de');
        exit;
    }

    if( 
    stripos( \Environment::get('host'), 'mantidsandmore.com' ) === false && !\Environment::get('request') && $GLOBALS['TL_LANGUAGE'] == 'en' )
    {
        
    header('Location: http://www.mantidsandmore.com');
        exit;

    Im Endeffekt ist es für dich egal, wenn du nur diese zwei Sprachen hast, aber es ist halt "schöner"
    Geändert von Spooky (25.01.2016 um 20:14 Uhr)

  33. #33
    Contao-Nutzer
    Registriert seit
    14.10.2015.
    Beiträge
    37

    Standard

    Also es bleibt wie gehabt:
    Das Script hat keine Auswirklungen (auch die neue Version deines letzten Posts bringt keine Änderung). Und mit "keine Auswirkung" meine ich, dass die Domain nicht abhängig von der Sprache geändert wird. Es ändert sich einfach nichts, deshalb bin ich nicht sicher, ob es überhaupt richtig eingebunden ist.

    Natürlich deaktiviere ich die Redictect-Anweisungen in der .htaccess immer aus, wenn ich das php-Script teste.

  34. #34
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.130
    Partner-ID
    10107

    Standard

    Ich glaube du missverstehst, was das Script genau macht. Das Script behandelt den Spezialfall, wenn keine Request Parameter übergeben werden, also wenn nur die Domain aufgerufen wird. Die .htaccess Anweisungen brauchst du weiterhin - außer eben
    Code:
    RewriteCond %{HTTP_HOST} mantidenundmehr\.de$
    RewriteRule ^$ http://www.mantidenundmehr.de/de/index.html [R=301,L]
    RewriteCond %{HTTP_HOST} mantidsandmore\.com$
    RewriteRule ^$ http://www.mantidsandmore.com/en/home.html [R=301,L]
    Das musst du entfernen (weil du wolltest ja, dass die Deutsche und Englische Startseite ohne Request Parameter zu sehen sein sollen - unter jeweils der richtigen Domain. Genau das soll das Script ja bewerktstelligen).
    Geändert von Spooky (30.01.2016 um 18:39 Uhr)

  35. #35
    Contao-Nutzer
    Registriert seit
    14.10.2015.
    Beiträge
    37

    Standard

    Ohje, ich habe wirklich falsch verstanden.. und ich dachte, du verstehst mich nicht. War ja klar, dass ich nicht richtig lesen konnte

    Nunja, jetzt passiert endlich mal was.
    Im Firefox klappt es, wie es soll. Gibt man die reine Domain an wird die entsprechende Sprache gewählt.
    Nur im IE wird www.mantidsandmore.com zu www.mantidenundmehr.de weitergeleitet. Seltsam. Dabei habe ich sowohl im IE als auch bei Contao alles Caches gelöscht.

    Update: Mit dem Internet Explorer 11 geschieht diese Umleitung.

    Habe gerade per www.redirect-checker.org die Domain http://www.mantidsandmore.com getestet. Und siehe da. Er bekommt ne 302-Weiterleitung:

    Code:
    >>> http://www.mantidsandmore.com
    
    
    > --------------------------------------------
    > 302 Found
    > --------------------------------------------
    
    
    Status: 302 Found 
    Code: 302 
    Date: Sat, 30 Jan 2016 20:13:05 GMT 
    Content-Type: text/html 
    Content-Length: 0 
    Connection: close 
    Server: Apache 
    Set-Cookie: FE_USER_AUTH=ecc6bbfc1b63eab3fa7c877dea9a8c204acba072; expires=Fri, 29-Jan-2016 20:13:05 GMT; Max-Age=-86400; path=/; httponly 
    Expires: Sat, 30 Jan 2016 20:18:05 GMT 
    Cache-Control: public, max-age=300 
    Pragma: public 
    Last-Modified: Sat, 30 Jan 2016 20:13:05 GMT 
    Location: http://www.mantidenundmehr.de
    Geändert von Paradoxa (30.01.2016 um 20:15 Uhr)

  36. #36
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.130
    Partner-ID
    10107

    Standard

    Zitat Zitat von Paradoxa Beitrag anzeigen
    Nur im IE wird www.mantidsandmore.com zu www.mantidenundmehr.de weitergeleitet. Seltsam.
    Das ist ja prinzipiell auch korrekt so. Du wolltest ja ursprünglich folgendes:
    Zitat Zitat von Paradoxa Beitrag anzeigen
    - Die Startseiten sollen aber nicht in der Url sichtbar sein (dort soll nur die reine Domain stehen) (funktioniert auch nicht.. außerdem hätte ich da natürlich gerne eine dauerhafte umleitung)
    Das sollte dieses Script ermöglichen:
    PHP-Code:
    if( stripos( \Environment::get('host'), 'mantidenundmehr.de' ) === false && !\Environment::get('request') && $GLOBALS['TL_LANGUAGE'] == 'de' )
    {
        
    header('Location: http://www.mantidenundmehr.de');
        exit;
    }

    if( 
    stripos( \Environment::get('host'), 'mantidsandmore.com' ) === false && !\Environment::get('request') && $GLOBALS['TL_LANGUAGE'] == 'en' )
    {
        
    header('Location: http://www.mantidsandmore.com');
        exit;

    denn damit wird auf die richtige Domain auch ohne Sprachparameter weitergeleitet. Sprich, je nach HTTP Accept-Language wird bei nicht vorhanden Sein des Sprachparameters die richtige Domain ausgewählt. Damit das übrigens eine dauerhafte Weiterleitung wird, musst du zusätzlich noch folgendes im Response Header mitschicken:
    PHP-Code:
    header("HTTP/1.1 301 Moved Permanently"); 
    also
    PHP-Code:
    if( stripos( \Environment::get('host'), 'mantidenundmehr.de' ) === false && !\Environment::get('request') && $GLOBALS['TL_LANGUAGE'] == 'de' )
    {
        
    header("HTTP/1.1 301 Moved Permanently"); 
        
    header('Location: http://www.mantidenundmehr.de');
        exit;
    }

    if( 
    stripos( \Environment::get('host'), 'mantidsandmore.com' ) === false && !\Environment::get('request') && $GLOBALS['TL_LANGUAGE'] == 'en' )
    {
        
    header("HTTP/1.1 301 Moved Permanently"); 
        
    header('Location: http://www.mantidsandmore.com');
        exit;


    All das ist ja eigentlich ein ziemlicher hack - vielleicht ist dein Vorhaben, also
    • die Verwendung der [i18nl10n] Extension
    • + die Verwendung verschiedener Domains pro Sprache
    • + all die Features, die man normalerweise in Contao mit verschiedenen Seitenbäumen pro Domain hat
    einfach nicht effizient möglich - aber da kann dir vielleicht der Entwickler der i18nl10n Extension besser weiterhelfen. Siehe dazu auch https://community.contao.org/de/show...light=i18nl10n
    Geändert von Spooky (31.01.2016 um 15:44 Uhr)

  37. #37
    Contao-Nutzer
    Registriert seit
    14.10.2015.
    Beiträge
    37

    Standard

    So, ich bin wieder zurück und versuche zu verstehen..
    Es wird mit diesem Script also abhängig von der HTTP Accept-Language die entsprechende Domain gewählt (wenn ich richtig verstanden habe). Das ist aber gar nicht mein Ziel.. Es gibt ja zwei Sprachen und zwei Domains. Also soll je nach Domainaufruf die entsprechende Sprache gewählt werden.

    Es klappt mit diesen redirect-anweisungen (ohne das script) ja fast alles wie gewünscht:

    Code:
    RewriteCond %{HTTP_HOST} mantidenundmehr\.de$
    RewriteRule ^$ http://www.mantidenundmehr.de/de/index.html [R=301,L]
    RewriteCond %{HTTP_HOST} mantidsandmore\.com$
    RewriteRule ^$ http://www.mantidsandmore.com/en/home.html [R=301,L]
    
    RewriteCond %{REQUEST_URI} ^/de/ [NC]
    RewriteCond %{HTTP_HOST} !mantidenundmehr\.de$ [NC]
    RewriteRule (.*) http://www.mantidenundmehr.de/$1 [R=301,L]
    
    RewriteCond %{REQUEST_URI} ^/en/ [NC]
    RewriteCond %{HTTP_HOST} !mantidsandmore\.com$ [NC]
    RewriteRule (.*) http://www.mantidsandmore.com/$1 [R=301,L]
    Es gibt nur noch das Problem, dass die erste Umleitung (die ersten vier Zeilen im Code) nicht versteckt passiert. Es sollte zwar die besagte Url aufgerufen werden, aber die reine Domain ohne Unterordner im Browser stehen bleiben. Habe es mit einem einfachen

    Code:
    RewriteRule mantidenundmehr.de mantidenundmehr.de/de/index.html
    RewriteRule mantidsandmore.com mantidsandmore.com/en/home.html
    versucht, aber es leitet nicht um (laut htaccess.mwl.be wird www.mantidsandmore.com auf :80/www.mantidsandmore.com/en/home.html umgeleitet?!). Wäre das nicht so eine versteckte Umleitung?

    Und selbst wenn die versteckte Umleitung von den beiden Startdomains auf die beiden Unterseiten funktioniert, hätte ich immer noch das doppelter-Inhalt-Problem (weil die beiden Start-Unterseiten auch direkt aufgerufen werden können). Ich müsste also nochmal zurückleiten, z.B. so das Beispiel für die deutsche Seite:

    Code:
    RewriteCond %{HTTP_HOST} mantidenundmehr.de/de/index.html
    RewriteRule ^$ http://www.mantidenundmehr.de/ [R=301,L]
    Ohje... ich fuchse mich ja wirklich gerne in etwas rein aber hier komme ich einfach nicht zum gewünschten Ergebnis.

  38. #38
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.130
    Partner-ID
    10107

    Standard

    Zitat Zitat von Paradoxa Beitrag anzeigen
    Es sollte zwar die besagte Url aufgerufen werden, aber die reine Domain ohne Unterordner im Browser stehen bleiben.
    Genau das soll das Script ja erledigen. Wenn du deine Website (ohne jegliche Redirects) nur mit der Domain aufrufst, ohne weitere Parameter, dann weiß Contao ja nicht, welche Sprache gewünscht ist, weil du die i18nl10n Extension verwendest, statt zwei Seitenbäume. Die Extension wählt dann anhand der HTTP Accept-Language die richtige Sprache aus, daher kann es passieren, dass unter deiner .de Domain die englische Seite sichtbar ist und umgekehrt.

  39. #39
    Contao-Nutzer
    Registriert seit
    14.10.2015.
    Beiträge
    37

    Standard

    Das script scheint sich aber an der HTTP accept language zu orientieren, oder? Mit dem script kommt es dazu, dass man von www.mantidsandmore.com auf www.mantidenundmehr.de umgeleitet wird, wenn die HTTP accept language DE eingestellt ist. Ich hätte aber gerne, dass je nach Domain die entsprechende Sprache geladen wird.

    Wenn ich (egal ob mit script oder per htaccess) beim Aufruf von www.mantidenundmehr.de auf www.mantidenundmehr.de/de/start.html versteckt umleiten würde, wüsste ja contao durch das /de/ welche Sprache gemeint ist. Und die Domain www.mantidenundmehr.de würde im Browser stehen bleiben. Oder nicht?
    Im Grunde funktioniert es ja mit

    Code:
    RewriteCond %{HTTP_HOST} mantidenundmehr\.de$
    RewriteRule ^$ http://www.mantidenundmehr.de/de/index.html [R=301,L]
    Nur kriege ich die versteckte Umleitung nicht hin, sodass im Broser die reine Domain www.mantidenundmehr.de stehen bleibt.
    Ich bin dir sehr dankbar Spooky, dass du immer noch Geduld mit mir hast.

  40. #40
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.130
    Partner-ID
    10107

    Standard

    Du wiederholst dich mit deiner Anforderung . Nochmal von vorne:
    • du willst, dass, wenn man die Website nur über die Domain aufruft, ohne zusätzliche Parameter, dass die Website in der richtigen Sprache, je nach Domain, angezeigt wird
    • das geht jedoch von Haus aus nicht, da du nur einen Seitenbaum für beide Domains verwendest
    • ohne Sprachparameter in der URL kann man daher nur über die HTTP Accept-Language entscheiden, welche Sprache angezeigt werden soll
    • ob und wie eine etwaige "versteckte Umleitung" funktioniert, so wie du dir das vorstellst, kann ich dir nicht sagen, ich wüsste da nichts
    Als Alternativlösung könnte man auch noch folgendes machen: in irgendeinem Hook die ausgewählte Sprache je nach Domain forcieren. Aber da müsste ich noch mehr recherchieren und programmieren - das müssten wir dann wiederum über einen Kleinstauftrag lösen .

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
  •