当前位置: 首页 > 知识库问答 >
问题:

如何编辑htaccess重定向到安全的www域名

申屠宏胜
2023-03-14

如何实现以下目标:

  • 重定向所有超文本传输协议://field. com到https://www.domain. com
  • 重定向所有超文本传输协议://www.domain. com到https://www.domain. com
  • 重定向所有https://field. com到https://www.domain. com

所以基本上,我所有的流量无论是非www还是www都将被重定向到SSL www域名。

编辑:

另外,我有2个子域可以在http上工作,所以我想实现上述目标,并使2个子域不受上述重定向规则的影响。

共有2个答案

陈俊郎
2023-03-14

首先,您可以编辑httpd。conf文件,并将其添加到:80服务器

 <IfModule mod_rewrite.c>
            RewriteEngine On
            RewriteCond %{HTTP_HOST} ^domain.com$ [NC]
            RewriteRule ^(.*)$ https://www.domain.com$1 [L,R=301]
 </IfModule>

不管怎么说,这是在上。htaccess也会这样做

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.domain\.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/?(.*)      https://www.domain.com/$1 [L,R,NE]

此外,您还可以在vhost文件中添加以下内容

重定向永久/https://www.domain.com/

在vhost_ssl中:

 <IfModule mod_rewrite.c>
                RewriteEngine On
                RewriteCond %{HTTP_HOST} ^domain.com$ [NC]
                RewriteRule ^(.*)$ https://www.domain.com$1 [L,R=301]
</IfModule>
厉令
2023-03-14

您可以在Root/中使用以下代码。htaccess:

RewriteEngine on
#Http to https
#Exclude subdomains
RewriteCond %{HTTP_HOST} !^(sub1|sub2)
RewriteCond %{HTTP_HOST} ^(www\.)?example.com$ [NC]
RewriteCond %{HTTPS} off
RewriteRule ^ https://www.example.com%{REQUEST_URI} [NC,L,R]
#add www on ssl
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [NC,L,R]

这将重定向:

>

  • http://example.com或

    http://www.example.com

    到ssl

    • https://www.example.com

    第二条规则将在ssl上向非www请求添加www,重定向:

    • https://example.com

    • https://www.example.com

  •  类似资料:
    • 我有以下htaccess代码: 我希望我的站点被重定向到使用HTTPS,并强制执行子域,但当我访问(没有HTTPS),它不会将我重定向到使用HTTPS。

    • 我有这个在我的. htaccess文件: 但是每当我访问根目录上的文件时,就像它将重定向到。 我如何纠正它,以便它将正确地重定向到?

    • 我有一个多个域共享一个htaccess的系统。目前,我使用以下命令将所有非www请求重定向到www。 唯一的问题是现在我根本不能使用子域,因为子域。我的主人。com将被重定向到www.sub-domain。我的主人。com 上述规则是否有一种方法可以排除所有以“sub-”开头的请求?而不是重定向到www。 更新: 在我的表格中只有以上5行。htaccess将抛出“500-内部服务器错误”。

    • 我通过将非www请求重定向到www。htaccess重写规则。 重写Cond%{HTTP_HOST}!^www 重写规则(.*)www.%{HTTP_HOST}/1美元[L, R=301] 但现在我在子域方面遇到了问题。当我访问然后上述规则重定向到(不可访问),网站在触摸设备上中断。 请告诉我如何解决上述问题。

    • 我想将任何不安全的请求重定向到https,并确保url始终使用“www”。这就是我所拥有的,但似乎不起作用。我错过了什么?

    • 我的一个域也有类似的问题。我为裸域和www域都安装了SSL证书。 现在,然而我想把裸体http://domain.com和https://domain.com都重定向到https://www.domain.com. 我在我的.htaccess中有这个规则,但当您使用https://domain.com,但是,当访问时http://domain.com,它重定向到http://www.domain.