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

如何使用htacces从www重定向到https www?

史磊
2023-03-14

我需要执行以下操作:我当前的地址如下所示:https://www.domain.com

我想用htaccess:www.domain重定向。通信https://www.domain.com和http://domain.com到https://www.domain.com

我在这里尝试了一些建议,但最终还是没完没了的循环。我试过:

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

任何帮助都将不胜感激。

更新:我想我已经做到了以下几点:

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

这样做对吗?

共有3个答案

强保臣
2023-03-14

最好的办法是:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

使用%{HTTP_HOST}你不需要写域名

子车勇锐
2023-03-14

你应该有一个前面的域名条件:

### Redirect non-www => www ###
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301]

因为你想说,做下一个规则,如果这个条件匹配。。。条件应该是主机与您想要的不匹配。

如果我将其与我以前见过并使用过的技术相结合,您可以尝试以下方法:

### Redirect non-www => www ###
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301]

# redirect urls with index.html to folder
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*index.html HTTP/
RewriteRule ^(([^/]+/)*)index.html$ https://%{HTTP_HOST}/$1 [R=301,L]

# change // to /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)//(.*) HTTP/ [NC]
RewriteRule ^.*$ https://%{HTTP_HOST}/%1/%2 [R=301,L]
左仰岳
2023-03-14

您可以在一个规则中实现这两种重定向,如下所示:

RewriteEngine On 

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.yourdomain.com%{REQUEST_URI} [R=301,L,NE]
 类似资料:
  • 问题内容: 我想使用PHP将所有www.domain.com请求重定向到domain.com,基本上是: 但是我确实想像SO中那样维护请求的URL,例如: 应该重定向到: 我不想依靠解决方案,并且我不确定要使用哪种变体来实现这一目标。同样,保留HTTPS协议将是一个加号。 我应该怎么做? 问题答案: 将用户重定向到完全相同的页面,www。完整。 因此,要摆脱www。,我们只需替换一行: 那应该起作

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

  • 一些上下文:我正在为域和下的网站提供服务。我想重定向所有请求,以便它们: 使用SSL(基本上,重定向超文本传输协议- 这就是我的apache配置的顶部: 然后我有了https://domain.com的配置: 当我访问非HTTPS页面时,这可以正常工作: < li>http://www.domain.com重定向到< code > https://domain . com < li>http://

  • 问题内容: 是否有可能以某种方式将www重定向到node.js中的非www URL?由于节点Web服务器中没有htaccess,我很好奇该怎么做。 问题答案: 你在用快递吧?如果是这样,则可以使所有GET请求都通过的路由处理程序,检查它们是否为“ www” URL,并在适当时重定向到适当的非www URL。

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

  • 好吧,我恨死它了。我已经想解决这个问题几个小时了,但我还是不知道是不是错了,或者我错过了什么。 我有这个代码: 它会将http请求重定向到https,但每当我键入domain.com时,它都会重定向到https://domain.com,并抛出一个ssl错误: 这可能不是你要找的网站!您试图访问域。但实际上您到达了一个服务器,该服务器的名称为www.domain.com。这可能是由于服务器配置错误