.htaccess代码将HTTP请求redirect到HTTPS

我最近把我的网站从HTTP迁移到HTTPS。 我在各种网站上阅读关于使用.htaccess代码将所有HTTP请求redirect到HTTPS。

许多网站提供不同的代码,现在我很困惑我应该使用哪个代码。

以下是在各种网站上find的4个代码:

第一码:

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

第二码:

 RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] 

第三码:

 RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.example.com/$1 [R,L] 

第四码:

 NameVirtualHost *:80 <VirtualHost *:80> ServerName www.example.com Redirect permanent / https://secure.example.com/ </VirtualHost> <VirtualHost _default_:443> ServerName secure.example.com DocumentRoot /usr/local/apache2/htdocs SSLEngine On </VirtualHost> 

请指导我哪个代码是完美的,我应该把我的.htaccess文件?

对于初学者来说:最后一个configuration代码片段在.htaccess文件中甚至是无效的…

(但是,既然你不应该使用.htaccess文件,如果你是一个系统pipe理员,这不是问题。)

将httpredirect到https(当作pipe理员)的教科书示例时,您不应该需要mod_rewrite方法,而是使用简单的redirect。 所以,如果你有访问主服务器的configuration,build议使用简单的http VirtualHost进行简单的redirect。