Use .htaccess to redirect HTTP to HTTPs

后端 未结 17 1558
刺人心
刺人心 2020-12-02 05:51

Please, don\'t recommend me the long and very detailed thread with more than 173 upvotes. It didn\'t work for me. I have also tried many others (1, 2, 3, 4). They all give m

相关标签:
17条回答
  • 2020-12-02 06:17

    For your information, it really depends on your hosting provider.

    In my case (Infomaniak), nothing above actually worked and I got infinite redirect loop.

    The right way to do this is actually explained in their support site:

    RewriteEngine on
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteRule (.*) https://your-domain.com/$1 [R=301,L]
    

    So, always check with your hosting provider. Hopefully they have an article explaining how to do this. Otherwise, just ask the support.

    0 讨论(0)
  • 2020-12-02 06:19

    None if this worked for me. First of all I had to look at my provider to see how they activate SSL in .htaccess my provider gives

    <IfModule mod_rewrite.c>
       RewriteEngine On
       RewriteCond %{HTTP:HTTPS} !on
       RewriteRule (.*) https://%{SERVER_NAME}/$1 [QSA,L,R=301]
    </IfModule>
    

    But what took me days of research is I had to add to wp-config.php the following lines as my provided site is behind a proxy :

    /**
     * Force le SSL
     */
    define('FORCE_SSL_ADMIN', true);
    if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) $_SERVER['HTTPS']='on';
    
    0 讨论(0)
  • 2020-12-02 06:20
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /
        RewriteCond %{HTTPS} !=on
        RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
        RewriteEngine On
        RewriteCond %{HTTP_HOST} ^digitalsoftwaremarket.com [NC]
        RewriteRule ^(.*)$ http://www.digitalsoftwaremarket.com/$1 [L,R=301]
    </IfModule>
    
    0 讨论(0)
  • 2020-12-02 06:21

    This is tested and safe to use

    Why?: When Wordpress editing your re-write rules, so make sure your HTTPS rule should not be removed! so this is no conflict with native Wordpress rules.

    <IfModule mod_rewrite.c>
       RewriteCond %{HTTPS} !=on
       RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]
    </IfModule>
    
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
      #Your our Wordpress rewrite rules...
    </IfModule>
    # END WordPress
    

    Note: You have to change WordPress Address & Site Address urls to https:// in General Settings also (wp-admin/options-general.php)

    0 讨论(0)
  • 2020-12-02 06:23

    On Dreamhost, this worked:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
    # BEGIN WordPress
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    
    0 讨论(0)
  • 2020-12-02 06:30

    Add this in the WordPress' .htaccess file:

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

    Therefore the default WordPress' .htaccess file should look like this:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    
    RewriteCond %{HTTP_HOST} ^yoursite.com [NC,OR]
    RewriteCond %{HTTP_HOST} ^www.yoursite.com [NC]
    RewriteRule ^(.*)$ https://www.yoursite.com/$1 [L,R=301,NC]
    </IfModule>
    
    0 讨论(0)
提交回复
热议问题