.htaccess 代码将 HTTP 请求重定向到 HTTPS

.htaccess 代码将 HTTP 请求重定向到 HTTPS

我最近将我的网站从 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文件中?

答案1

.htaccess首先:最后的配置片段在文件 中甚至无效......

(但是由于你不应该使用.htaccess文件如果您是系统管理员,这不是问题。)

将 http 重定向到 https教科书范例何时(作为管理员)您不需要 mod_rewrite 方法,而是使用简单的重定向。因此,如果您确实有权访问主服务器配置,则建议使用来自纯 http VirtualHost 的简单重定向作为最后一个代码片段。

相关内容