我最近把我的网站从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。