ehelp.lk is the forum where i got the problem. when trying to reach without typing www website is not working. there is and error message 'ERR_TOO_MANY_REDIRECTS". but when typing www.ehelp.lk (with www) can access the website. i want to resolve this problem. i tried all the methods discussed in this community, unfortunately didn't work

We need to know more about your setup. Flarum doesn't handle redirects to the canonical URL by itself so the redirects are either something set up by your host, or something you added yourself.

What kind of hosting are you using and did you modify the .htaccess file or Apache configuration yourself?

    What is your SSL mode configured on Cloudflare? Try change it to "Full".

      rob006 i used Let's encrypt and this is the code i used to ssetup ssl
      certbot --apache -d www.ehelp.lk

      Looks like ehelp.lk is redirecting to itself. And from the response header it seems CloudFlare is doing that.

        this is my .htaccess

        <IfModule mod_rewrite.c>
          RewriteEngine on
        
          # Ensure the Authorization HTTP header is available to PHP
          RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
        
          # Uncomment the following lines if you are not using a `public` directory
          # to prevent sensitive resources from being exposed.
          # RewriteRule /\.git / [F,L]
          # RewriteRule ^auth\.json$ / [F,L]
          # RewriteRule ^composer\.(lock|json)$ / [F,L]
          # RewriteRule ^config.php$ / [F,L]
          # RewriteRule ^flarum$ / [F,L]
          # RewriteRule ^storage/(.*)?$ / [F,L]
          # RewriteRule ^vendor/(.*)?$ / [F,L]
        
          # Pass requests that don't refer directly to files in the filesystem to index.php
          RewriteCond %{REQUEST_FILENAME} !-f
          RewriteCond %{REQUEST_FILENAME} !-d
          RewriteRule ^ index.php [QSA,L]
        </IfModule>
        
        # Disable directory listings
        Options -Indexes
        
        # MultiViews can mess up our rewriting scheme
        Options -MultiViews
        
        # The following directives are based on best practices from H5BP Apache Server Configs
        # https://github.com/h5bp/server-configs-apache
        
        # Expire rules for static content
        <IfModule mod_expires.c>
          ExpiresActive on
          ExpiresDefault                                      "access plus 1 month"
          ExpiresByType text/css                              "access plus 1 year"
          ExpiresByType application/atom+xml                  "access plus 1 hour"
          ExpiresByType application/rdf+xml                   "access plus 1 hour"
          ExpiresByType application/rss+xml                   "access plus 1 hour"
          ExpiresByType application/json                      "access plus 0 seconds"
          ExpiresByType application/ld+json                   "access plus 0 seconds"
          ExpiresByType application/schema+json               "access plus 0 seconds"
          ExpiresByType application/vnd.geo+json              "access plus 0 seconds"
          ExpiresByType application/vnd.api+json              "access plus 0 seconds"
          ExpiresByType application/xml                       "access plus 0 seconds"
          ExpiresByType text/calendar                         "access plus 0 seconds"
          ExpiresByType text/xml                              "access plus 0 seconds"
          ExpiresByType image/vnd.microsoft.icon              "access plus 1 week"
          ExpiresByType image/x-icon                          "access plus 1 week"
          ExpiresByType text/html                             "access plus 0 seconds"
          ExpiresByType application/javascript                "access plus 1 year"
          ExpiresByType application/x-javascript              "access plus 1 year"
          ExpiresByType text/javascript                       "access plus 1 year"
          ExpiresByType application/manifest+json             "access plus 1 week"
          ExpiresByType application/x-web-app-manifest+json   "access plus 0 seconds"
          ExpiresByType text/cache-manifest                   "access plus 0 seconds"
          ExpiresByType text/markdown                         "access plus 0 seconds"
          ExpiresByType audio/ogg                             "access plus 1 month"
          ExpiresByType image/bmp                             "access plus 1 month"
          ExpiresByType image/gif                             "access plus 1 month"
          ExpiresByType image/jpeg                            "access plus 1 month"
          ExpiresByType image/png                             "access plus 1 month"
          ExpiresByType image/svg+xml                         "access plus 1 month"
          ExpiresByType image/webp                            "access plus 1 month"
          ExpiresByType video/mp4                             "access plus 1 month"
          ExpiresByType video/ogg                             "access plus 1 month"
          ExpiresByType video/webm                            "access plus 1 month"
          ExpiresByType application/wasm                      "access plus 1 year"
          ExpiresByType font/collection                       "access plus 1 month"
          ExpiresByType application/vnd.ms-fontobject         "access plus 1 month"
          ExpiresByType font/eot                              "access plus 1 month"
          ExpiresByType font/opentype                         "access plus 1 month"
          ExpiresByType font/otf                              "access plus 1 month"
          ExpiresByType application/x-font-ttf                "access plus 1 month"
          ExpiresByType font/ttf                              "access plus 1 month"
          ExpiresByType application/font-woff                 "access plus 1 month"
          ExpiresByType application/x-font-woff               "access plus 1 month"
          ExpiresByType font/woff                             "access plus 1 month"
          ExpiresByType application/font-woff2                "access plus 1 month"
          ExpiresByType font/woff2                            "access plus 1 month"
          ExpiresByType text/x-cross-domain-policy            "access plus 1 week"
        </IfModule>
        
        # Gzip compression
        <IfModule mod_deflate.c>
          <IfModule mod_filter.c>
            AddOutputFilterByType DEFLATE "application/atom+xml" \
                                          "application/javascript" \
                                          "application/json" \
                                          "application/ld+json" \
                                          "application/manifest+json" \
                                          "application/rdf+xml" \
                                          "application/rss+xml" \
                                          "application/schema+json" \
                                          "application/vnd.geo+json" \
                                          "application/vnd.ms-fontobject" \
                                          "application/wasm" \
                                          "application/x-font-ttf" \
                                          "application/x-javascript" \
                                          "application/x-web-app-manifest+json" \
                                          "application/xhtml+xml" \
                                          "application/xml" \
                                          "font/collection" \
                                          "font/eot" \
                                          "font/opentype" \
                                          "font/otf" \
                                          "font/ttf" \
                                          "image/bmp" \
                                          "image/svg+xml" \
                                          "image/vnd.microsoft.icon" \
                                          "image/x-icon" \
                                          "text/cache-manifest" \
                                          "text/calendar" \
                                          "text/css" \
                                          "text/html" \
                                          "text/javascript" \
                                          "text/plain" \
                                          "text/markdown" \
                                          "text/vcard" \
                                          "text/vnd.rim.location.xloc" \
                                          "text/vtt" \
                                          "text/x-component" \
                                          "text/x-cross-domain-policy" \
                                          "text/xml"
            </IfModule>
        </IfModule>
        
        # Fix for https://httpoxy.org vulnerability
        <IfModule mod_headers.c>
          RequestHeader unset Proxy
        </IfModule>
        • [deleted]

        • Edited

        How are you redirecting is flarum handling it?

        If Yes then add this in htaccess file

        RewriteCond %{HTTP_HOST} ^ehelp.lk$ [NC]
        RewriteRule (.*) https://www.ehelp.lk/$1 [R=301,L]

        or

        Simply install this Canonical Url extension

        or

        Use Firebase

        Is it free?

        Yes it is free for lifetime..

        Steps:-

        1. Open Console.
        2. Make a Project name it anything.
        3. Go to hosting and add domain and verify it with A records and It may ask you for TXT records.
        4. It will ask you to serve some content or redirect to existing domain simply click existing and type www.ehelp.lk
        5. Only that much and you are done.

        Remember:

        1. Do not forget to turn on Cloudflare.
        2. If you decided to use the Firebase, Do not proxy firebase IPs with Cloudflare as It will result in no verification from firebase.
        3. If you like the answer then do not forget to select as BEST Answer
        2 years later

        cloudflare log in ----) ssl/tls overview----)full no problem