Forcing SSL and WWW using .htaccess

前端 未结 7 804
野性不改
野性不改 2020-12-13 00:59

I would like to know if this code in .htaccess for forcing SSL and WWW in URL is correct, because with another codes I usually get redirect loop, e.g. Rew

相关标签:
7条回答
  • 2020-12-13 01:01

    No need for filling in a domain. This is forcing WWW and HTTPS in any case. This is dealing with subfolder as well.

    RewriteEngine On
    
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
    
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    
    0 讨论(0)
  • 2020-12-13 01:04

    Use this:

    RewriteEngine on
    
    # Force www: from http://stackoverflow.com/a/4958847/1078583
    RewriteCond %{HTTP_HOST} !^$
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteCond %{HTTPS}s ^on(s)|
    RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    
    # Force SSL: From http://stackoverflow.com/q/24322035/
    RewriteCond %{HTTPS} off
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L,NE]
    
    0 讨论(0)
  • 2020-12-13 01:07

    I found a mod_rewrite solution that works well for both proxied and unproxied servers.

    If you are using CloudFlare, AWS Elastic Load Balancing, Heroku, OpenShift or any other Cloud/PaaS solution and you are experiencing redirect loops with normal HTTPS redirects, try the following snippet instead.

    RewriteEngine On
    
    # If we receive a forwarded http request from a proxy...
    RewriteCond %{HTTP:X-Forwarded-Proto} =http [OR]
    
    # ...or just a plain old http request directly from the client
    RewriteCond %{HTTP:X-Forwarded-Proto} =""
    RewriteCond %{HTTPS} !=on
    
    # Redirect to https version
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
    0 讨论(0)
  • 2020-12-13 01:07

    I had the same problem and I used this to solve it. worked best.

    RewriteCond %{SERVER_PORT} 80 
    RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L,NE]
    
    0 讨论(0)
  • 2020-12-13 01:08

    Sorry for bumping this topic but I just wanted to add a simple solution for search engine visitors.

    RewriteEngine on
    # Force WWW & SSL
    RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
    RewriteRule ^(.*)$ https://www.stackoverflow.com/$1 [L,R=301] 
    
    0 讨论(0)
  • 2020-12-13 01:14

    That's a bit simpler.

    RewriteEngine On
    RewriteCond %{HTTPS} off [OR]
    RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
    RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301]
    
    0 讨论(0)
提交回复
热议问题