Ergebnis 1 bis 26 von 26

Thema: htaccess rewrite auf https ohne www.

  1. #1
    Contao-Nutzer
    Registriert seit
    24.03.2010.
    Beiträge
    16

    Standard htaccess rewrite auf https ohne www.

    Hallo,

    was ist die "best practice" für die Weiterleitung aller Anfragen auf https: ohne .www?

    Alle Vorschläge, die ich bisher gegoogelt habe, legen entweder die Site komplett lahm, z.B. wegen zu vielen Redirects, oder lösen das Problem nicht vollständig. Mit den aktuell eingestellten Regeln, siehe unten, schaffe ich folgendes:

    1) http://domain.tld -> http://domain.tld/Seitenalias

    2) http://www.domain.tld -> https://domain.tld/Seitenalias
    3) https://domain.tld -> https://domain.tld/Seitenalias
    4) https://www.domain.tld -> https://domain.tld/Seitenalias

    2) bis 4) ist für mich perfekt. 1) auch noch hinzubiegen, scheint mir inzwischen eine übermenschliche Aufgabe.

    Hier ist mein aktueller Rewrite Abschnitt aus .htaccess:

    ##
    # URL rewriting
    ##

    <IfModule mod_rewrite.c>

    RewriteEngine On
    RewriteBase /

    RewriteCond %{HTTPS} !=on
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]

    RewriteCond %{HTTPS} =on
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]

    ##
    # 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} !-f
    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|map|htc|png|gif|jpe?g|ico|xml|c sv|txt|swf|flv|mp4|webm|ogv|mp3|ogg|oga|eot|otf|tt[cf]|woff2?|svgz?|pdf|zip|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>

    Besten Dank im Voraus
    Wolfram

  2. #2
    Contao-Urgestein
    Registriert seit
    20.09.2012.
    Ort
    Lüneburger Heide
    Beiträge
    2.023
    Partner-ID
    12207
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hi,

    ohne jetzt ein .htaccess Experte zu sein nutze ich die folgenden Zeilen:

    Code:
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
    RewriteCond %{HTTPS} =off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

    Damit werden alle Anfrage auf https://www.meine-seite.tld umgeleitet.

    Gruß
    tschero
    Autodidakt und HobbyWebdesigner

    www.webdesign24.biz
    Screencasts zu Contao

  3. #3
    Contao-Nutzer
    Registriert seit
    24.03.2010.
    Beiträge
    16

    Standard

    Hi tschero,

    vielen Dank. Ich hatte gestern noch einen Vorschlag gefunden, der Deinem sehr ähnlich ist.

    Funktioniert, aber http://domain.tld wird nicht auf https://domain... weitergeleitet:

    Code:
    RewriteCond %{HTTPS} !=on
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
    RewriteCond %{HTTPS} =on
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
    Dein Vorschlag funktioniert nicht, too many redirects:

    Code:
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
    RewriteCond %{HTTPS} =off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    https://github.com/jenstornell/kirby...-https-non-www
    funktioniert auch nicht, auch too many redirects:

    Code:
    RewriteCond %{HTTP_HOST} ^www\. [NC,OR]
    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
    RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L,NE]
    Wenn ich in den Contao Einstellungen "URL umschreiben" deaktiviere, erscheint wie zu erwarten wieder die hässliche index.php in der URL, sonst kein Unterschied.

    Ich habe dann auch mal die Strato Host Einstellungen geprüft, mit der wilden Vermutung, dass dort schon Redirects gesetzt sind. Nichts davon. Ich _könnte_ dort für die Domain "SSL erzwingen" aktivieren. Aber das ist angeblich nicht rückgängig zu machen. Für einen Blindflug ist mir das zu sportlich

    Grüsse
    Wolfram

  4. #4
    Contao-Urgestein
    Registriert seit
    20.09.2012.
    Ort
    Lüneburger Heide
    Beiträge
    2.023
    Partner-ID
    12207
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hi,

    Funktioniert, aber http://domain.tld wird nicht auf https://domain... weitergeleitet:
    komisch bei mir klappt das:

    http://webdesign24.biz

    Hast Du mal die 4 Zeilen in eine saubere .htaccess.default von Contao kopiert und dann in .htaccess umbenannt?

    EDIT:
    Ich habe aber mit Absicht immer auf umgeleitet.

    Gruß
    tschero
    Geändert von tschero (03.06.2017 um 10:15 Uhr)
    Autodidakt und HobbyWebdesigner

    www.webdesign24.biz
    Screencasts zu Contao

  5. #5
    Contao-Nutzer
    Registriert seit
    24.03.2010.
    Beiträge
    16

    Standard

    Was meinst Du genau mit klappt das?

    webdesign24.biz wird umgeschrieben auf https://www.webdesign24.biz/

    Mein Ziel wäre https://webdesign24.biz/

    Meine .htaccess habe ich bereits aus der aktuellen .default abgeleitet. Nur den rewrite Abschnitt geändert.

  6. #6
    Contao-Urgestein
    Registriert seit
    20.09.2012.
    Ort
    Lüneburger Heide
    Beiträge
    2.023
    Partner-ID
    12207
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ok,

    dann sollte das hier funktionieren.

    Code:
    RewriteCond %{HTTPS} off [OR]
    RewriteCond %{HTTP_HOST} ^www\. [NC]
    RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
    RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]
    Habs bei mir mal so eingestellt und klappt, wenn ich Dich richtig verstanden habe ;-).
    Den Link lasse ich auch für einen Moment noch so damit Du schauen kannst.

    http://www.webdesign24.biz

    Gruß
    tschero
    Autodidakt und HobbyWebdesigner

    www.webdesign24.biz
    Screencasts zu Contao

  7. #7
    Contao-Nutzer
    Registriert seit
    24.03.2010.
    Beiträge
    16

    Standard

    Vielen Dank! Ich habs gesehen. Bei Dir klappt das jetzt wirklich

    Bei mir leider immer noch nicht. Ich schätze, die Lösung ist in den Contao Einstellungen zu suchen.

    System/Einstellungen:

    URL Suffix = LEER
    Cache Modus = Server und Browser
    [x] URLs umschreiben

    Startpunkt:
    DNS / Domainname = LEER

    Was ist sonst relevant? Gibt es versteckte Redirects, die mit .htaccess zusammen "too many" sind?

  8. #8
    Contao-Urgestein
    Registriert seit
    20.09.2012.
    Ort
    Lüneburger Heide
    Beiträge
    2.023
    Partner-ID
    12207
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hier mal meine Einstellungen:

    URL-Suffix - .html
    Cache-Modus - deaktiviert
    URLs umschreiben - aktiviert
    Auto_item aktivieren - aktiviert

    Startpunkt:
    DNS / Domainname = LEER

    Hast Du bei Deinem Hostzer(welcher denn und welches Paket) evtl. etwas eingestellt?

    Stehen diese beiden Zeilen auch in der .htaccess?
    Code:
    RewriteEngine On
    
    RewriteBase /
    Gruß
    tschero
    Autodidakt und HobbyWebdesigner

    www.webdesign24.biz
    Screencasts zu Contao

  9. #9
    Contao-Nutzer
    Registriert seit
    24.03.2010.
    Beiträge
    16

    Standard

    Cache habe ich inzwischen auch deaktiviert.

    Auto-Item kann ich noch mal "mit" probieren.

    Beim Provider ist nichts eingestellt ausser Root = /.

    RewriteBase macht deshalb keinen Sinn, noch mal in htaccess zu definieren. Habe ich der Vollständigkeit halber aber auch schon ausprobiert.

    Nur: Warum hast Du URL Suffix auf html?

    Das habe ich meines Wissens schon immer leer, weil ich ".html" für genauso überflüssig halte wie "www.".

  10. #10
    Contao-Nutzer
    Registriert seit
    24.03.2010.
    Beiträge
    16

    Standard

    Hier noch mal der Ausschnitt aus meiner htaccess:

    Code:
      ...
      RewriteEngine On
    
      #RewriteBase /
    
    	RewriteCond %{HTTPS} !=on
    	RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    	RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
    	RewriteCond %{HTTPS} =on
    	RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    	RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
    
      #RewriteCond %{HTTPS} off [OR]
      #RewriteCond %{HTTP_HOST} ^www\. [NC]
      #RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
      #RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]
    
      #RewriteCond %{HTTP_HOST} !^www\. [NC]
      #RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
      #RewriteCond %{HTTPS} =off
      #RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    
      #RewriteCond %{HTTP_HOST} ^www\. [NC,OR]
      #RewriteCond %{HTTPS} off
      #RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
      #RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L,NE]
    
      ##
      # If you cannot use mod_deflate, ...
    Nur so funktioniert es, bis auf http://domain.tld bleibt http statt https.

    Kommentiere ich den einen Block und unkommentiere dafür einen der 3 alternativen Blöcke, lande ich mit allen URL Versionen auf "too many redirects".

    Mit/ohne Cache, mit/ohne Auto-Items usw.
    Geändert von reyno (03.06.2017 um 16:21 Uhr)

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

    Standard

    Warum hast du so viele Rewrite Rules? Du brauchst doch bloß zwei... Poste mal deine gesamte .htaccess (ungekürzt).

  12. #12
    Contao-Nutzer
    Registriert seit
    24.03.2010.
    Beiträge
    16

    Standard

    Hi Spooky,

    ungekürzt sieht meine .htaccess derzeit so aus:

    Code:
    ##
    # Contao Open Source CMS
    #
    # Copyright (c) 2005-2016 Leo Feyer
    #
    # @license LGPL-3.0+
    ##
    
    ##
    # 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>
    
      ##
      # Do not cache source map files
      # @see https://github.com/contao/core/issues/8532
      ##
      <FilesMatch "\.map$">
        Header set Expires "0"
        Header set Cache-Control "no-cache, no-store, must-revalidate, max-age=0, proxy-revalidate, no-transform"
      </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
    
      # RewriteBase /
    
     # RewriteCond %{HTTPS} !=on [OR]
      RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC,OR]
      RewriteCond %{HTTP_HOST} ^domain\.com$ [NC,OR]
      RewriteCond %{HTTP_HOST} ^do-main\.de$ [NC,OR]
      RewriteCond %{HTTP_HOST} ^do-main\.com$ [NC,OR]
      RewriteCond %{HTTP_HOST} ^dö-mäin\.de$ [NC]
      RewriteRule ^(.*)$ https://domain.de/$1 [L,R=301]
    
    	#RewriteCond %{HTTPS} !=on
    	#RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    	#RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
    	#RewriteCond %{HTTPS} =on
    	#RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    	#RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
    
      #RewriteCond %{HTTPS} off [OR]
      #RewriteCond %{HTTP_HOST} ^www\. [NC]
      #RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
      #RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]
    
      #RewriteCond %{HTTP_HOST} !^www\. [NC]
      #RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
      #RewriteCond %{HTTPS} =off
      #RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    
      #RewriteCond %{HTTP_HOST} ^www\. [NC,OR]
      #RewriteCond %{HTTPS} off
      #RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
      #RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L,NE]
    
      ##
      # 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} !-f
    	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|map|htc|png|gif|jpe?g|ico|xml|csv|txt|swf|flv|mp4|webm|ogv|mp3|ogg|oga|eot|otf|tt[cf]|woff2?|svgz?|pdf|zip|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>
    Entspricht wie schon berichtet der aktuellen .default.

    Letzter Kenntnisstand: Die Problemzeile ist

    Code:
     # RewriteCond %{HTTPS} !=on [OR]
    bzw.

    Code:
     # RewriteCond %{HTTPS} off [OR]
    So bald diese Bedingung aktiv ist, werden too many redirects ausgeworfen.

    Warum so viele Rules? Achtung, alles nach # zählt nicht

    Ich habe x Domains auf 1 Contao wegen x Schreibweisen des Namens. www. habe ich schon immer unterdrückt. Jetzt hat die Zieldomain ein SSL Zertifikat von Strato. Deshalb sollen alle Anfragen auf https: umgeschrieben werden. Natürlich weiterhin ohne www. Und am besten gleich für alle alternativen Schreibweisen.

    Den derzeit unkommentierten Block habe ich mir gerade selbst gezimmert und erfolgreich ausprobiert. Ähem ... von der Problemzeile abgesehen, s.o.

  13. #13
    Contao-Nutzer
    Registriert seit
    24.03.2010.
    Beiträge
    16

    Standard

    So funktioniert es:

    Code:
    ...
    ##
    # URL rewriting
    ##
    
    <IfModule mod_rewrite.c>
    
      RewriteEngine On
    
      # RewriteBase /
    
      RewriteCond %{SERVER_PORT} !^443$ [OR]
      RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC,OR]
      RewriteCond %{HTTP_HOST} ^domain\.com$ [NC,OR]
      RewriteCond %{HTTP_HOST} ^dömäin\.de$ [NC,OR]
      RewriteCond %{HTTP_HOST} ^do-main\.de$ [NC,OR]
      RewriteCond %{HTTP_HOST} ^do-main\.com$ [NC,OR]
      RewriteCond %{HTTP_HOST} ^dö-mäin\.de$ [NC]
      RewriteRule ^ https://domain.de/$1 [L,R=301]
    
    ...
    Entscheidend sind die 1. und die letzte Zeile. Dazwischen steht einfach eine Liste von alternativen Domains, die auf die Zieldomain umgeschrieben werden sollen.

    In der 1. Zeile auf %{HTTPS} zu testen, wie oft empfohlen, funktioniert bei mir auf keinen Fall. Hier wird stattdessen auf den Port getestet. Falls der nicht SSL ist, wird umgeschrieben, egal welche Domain aufgerufen wurde. Sonst werden jeweils mit OR = ODER alle unerwünschten, alternativen Schreibweisen getestet, ob trotz SSL auf Zieldomain umzuschreiben ist.

    In der letzten Zeile entscheidet wohl das 1. Argument, ob die Domain tatsächlich umgeschrieben wird. Irgendwas mit (.*) u.ä., wie auch oft empfohlen, führt bei mir dazu, dass die aufgerufene Domain erhalten bleibt.

  14. #14
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.089
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von reyno Beitrag anzeigen
    Nur: Warum hast Du URL Suffix auf html?

    Das habe ich meines Wissens schon immer leer, weil ich ".html" für genauso überflüssig halte wie "www.".
    Da stimme ich dir zu, ich halte auch beide für gleich überflüssig. Allerdings im Gegensatz zu dir beide für NICHT überflüssig. .

  15. #15
    Contao-Nutzer
    Registriert seit
    24.03.2010.
    Beiträge
    16

    Staunendes Gesicht

    Klar. So hast Du schon mal 2 Keywords in der Domain

  16. #16
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.821
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Was hast das denn mit keywords zu tun?
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  17. #17
    Contao-Nutzer
    Registriert seit
    24.03.2010.
    Beiträge
    16

    Standard

    Ob man www. oder .html benutzt, hat selbstverständlich nichts mit Keywords zu tun. Meine Bemerkung war als Witz gemeint. Ich wollte damit zum Ausdruck bringen, dass mir ausser diesem Witz kein Grund einfällt, auf www. oder .html in URLs zu setzen.

  18. #18
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.089
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Das kann ich mir schon denken, natürlich analysiert Google auch die URL (sprechende URLs...). Aber ich kann mir nicht vorstellen, dass Google so blöd ist, das "www" für diesen Zweck nicht einfach zu ignorieren und sowieso die (Sub-)Domain separat vom Rest der URL auszuwerten.

    Dass es durchaus Probleme machen kann (nicht muss), wenn man das "www" wegoptimiert, z.B. wenn unter der Domain eben nicht nur die Website erreichbar sein soll, sondern auch noch andere Services über Subdomains, hat @xtra mal in einem anderen Thread erläutert. Ich finde den Beitrag leider gerade nicht.

  19. #19
    Contao-Nutzer
    Registriert seit
    24.03.2010.
    Beiträge
    16

    Standard

    Klar achte ich darauf, dass meine Sites immer auch unter www. erreichbar sind. Und dass Google über die Search Console Google weiss, dass ich ohne www. bevorzuge.

    Mit alternativen Domains für unterschiedliche Schreibweisen und der optionalen Subdomain www. mache ich es Benutzern leicht, "irgendwas" einzutippen und richtig zu landen. Die finale URL möchte ich aber eindeutig, einheitlich und sprechend bzw. relevant haben.

    Ob da http: oder https: steht, macht einen Unterschied. Ob da www. steht oder nicht, macht keinen. Sollte jedenfalls aus meiner Sicht keinen machen, so wie wir seit Jahren das Web gewöhnt sind zu nutzen.

    Aber ich ändere meine Meinung auch zuweilen. Falls Du den Artikel noch findest, schau ich mir den gerne an.

  20. #20
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.089
    Contao-Projekt unterstützen

    Support Contao

  21. #21
    Contao-Nutzer
    Registriert seit
    24.03.2010.
    Beiträge
    16

    Standard

    Vielen Dank. Interessant. Verstehe ich sogar

    Sicher wichtig zu beachten, wenn man auf mehrere Subdomains setzt, wie z.B. contao.org. Und es gibt sicher gute Gründe, community.contao.org einer contao.org/community vorzuziehen. Erst recht bei mehreren Contao Installationen.

    Subdomains sind für Google eigenständige Domains. Dafür habe ich keinen Bedarf und muss dafür auch nicht vorsorgen. Falls doch, kann man dafür ja genauso gut eigenständige Domains registrieren, z.B. contao-community.org

    Wie auch immer: es gibt halt kein one size fits all ...

  22. #22
    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 reyno Beitrag anzeigen
    Ich habe x Domains auf 1 Contao wegen x Schreibweisen des Namens.
    Es ist besser, wenn du die "Alias"-Domains direkt bei den Servereinstellungen als 301-Weiterleitung auf die "Haupt"-Domain weiterleitest. Nicht in den Installationsordner leiten und dann erst in der htaccess aussortieren.
    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

  23. #23
    Contao-Nutzer
    Registriert seit
    24.03.2010.
    Beiträge
    16

    Standard

    Hallo Andreas,

    was genau meinst Du mit besser?

    Ich habe es hier mit Strato zu tun. Kein Server, nur Hosting. Für Weiterleitungen von Domains bietet Strato folgendes an:

    https://www.strato.de/faq/article/38...umleitung.html

    Das passt nicht. Alternativ, 301 per .htaccess:

    https://www.strato.de/faq/article/21...irect-301.html

    Ich könnte also jede Alias-Domain auf ein eigenes Unterverzeichnis schicken, dort jeweils eine .htaccess anlegen mit

    Code:
    Redirect 301 / http://www.wunschname.de/
    Oder alles zusammen in die .htaccess für /:

    Code:
    Redirect 301 /alias1 http://www.wunschname.de/
    Redirect 301 /alias2 http://www.wunschname.de/
    Redirect 301 /... http://www.wunschname.de/
    Meinst Du das?

    Ich habe eben mal ScreamingFrog auf meine Alias-Domains losgelassen. Meldet brav 301. Von daher sehe ich noch nicht, worauf Du hinaus willst.

  24. #24
    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

    Die Alias-Domains sollten direkt als HTTP-Weiterleitung 301 auf die Hauptdomain weitergeleitet werden, sodass die htaccess in deinem Verzeichnis erst gar nicht mit diesen Domains aufgerufen wird.

    In der Strato-Hilfe kannst du sehen, dass dies geht. Extern, HTTP. Leider macht Strato das mit einem 302. Das scheint die Apache Standardeinstellung zu sein. Ich bin bei Webgo. Dort hatte ich mal darum gebeten, das auf 301 zu ändern (Ich meine das wurde auch gemacht). Bei Webgo kann ich auf diese Weise sogar die Subdomains mit www auf die Hauptdomain ohne www leiten. D.h. im Verzeichnis meiner Installation, dann wenn die htaccess aufgerufen wird, kommt immer nur meine Hauptdomain an. HTTPS habe ich mir dort noch nicht eingerichtet, aber ich kann mir vorstellen, dass ich dies auch nicht in der htaccess machen muss.

    Also wenn das bei dir so geht, wie beschrieben, dann ist das der sauberste effizienteste Weg. Wenn nicht, und du hast auch keinen Zugriff auf die httpd.conf, dann musst du es natürlich in deiner htaccess machen.
    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

  25. #25
    Contao-Nutzer
    Registriert seit
    24.03.2010.
    Beiträge
    16

    Standard

    Danke für den Hinweis mit Webgo. Ich habe ein anderes Projekt dort gehostet und schau mir das mit den Redirects mal genauer an, im Vergleich zu Strato.

  26. #26
    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

    Habe mir das bei Webgo nochmal angesehen. Das ist ja sehr spartanisch gehalten. Entweder gibst du für eine Domain ein Verzeichnis an - "/mein-verzeichnis" - oder eine URL - "http://example.org/". Erstes routet die Domain in das Verzeichnis, Zweites richtet eine 301 auf die URL ein.
    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

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
  •