我最近将我的网站从 HTTP 迁移到 HTTPS。.htaccess
我在各种网站上阅读了有关使用代码将所有 HTTP 请求重定向到 HTTPS 的信息。
许多网站提供不同的代码,现在我很困惑应该使用哪个代码。
以下是在各种网站上找到的 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
文件中吗?
对于初学者:最后一个配置片段在文件中甚至无效
.htaccess
......(但是,如果您是系统管理员,则无论如何都不应该使用文件,这不是问题。)
.htaccess
将 http 重定向到 https一个教科书示例,说明何时(作为管理员)您不需要 mod_rewrite 方法,而是使用简单的重定向。因此,如果您确实有权访问主服务器配置,则建议您使用来自普通 http VirtualHost 的简单重定向的最后一个片段。