.htaccess 重定向到HTTP非www到HTTPS www htaccess
我想用HTTPS协议从任何方向重定向到我们的站点,但有些重定向不起作用。我想要这个:.htaccess 重定向到HTTP非www到HTTPS www htaccess,.htaccess,.htaccess,我想用HTTPS协议从任何方向重定向到我们的站点,但有些重定向不起作用。我想要这个: http://www.site.co至https://www.site.co http://site.co至https://www.site.co 这是我的htaccess: RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301] RewriteCond %{HTTP
至http://www.site.co
https://www.site.co
至http://site.co
https://www.site.co
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301]
第二条规则是它不起作用。它将转到我们站点内的另一个方向,并且不会重定向到HTTPS站点。尝试如下操作:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]
这里唯一真正的区别是,首先我们从非WWW重定向到WWW,然后我们检查HTTPS并重定向它
如果不起作用,请尝试以下方法:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]
如果您使用One.com作为Web主机,则应使用以下代码:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Prix的答案是有效的。为了使其更具动态性,让我们使用服务器名称和请求URI,而不是静态域名
RewriteEngine On
#we replace domain.com/$1 with %{SERVER_NAME}%{REQUEST_URI}.
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*) https://www.%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
#here we dont use www as non www was already redirected to www.
RewriteCond %{HTTPS} off
RewriteRule ^(.*) https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
这将用于www或非www 如果您尝试打开与www的链接,则url重定向到与www的https
Example : http://domain.com redirect to https://domain.com
或者,如果您试图打开非www链接,则url重定向到非www的https
Example : http://www.domain.com redirect to https://www.domain.com
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
抱歉,我没有足够的理由发表评论,@prix的规则将带来不必要的重定向
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301]
您可以尝试使用GTMETRIX,您将收到此消息
"Avoid landing page redirects for the following chain of redirected URLs."
http://domain.com/
http://www.domain.com/
https://www.domain.com/
要防止这种情况,请转到第一条重写规则,并在http的末尾添加一个“s”。新规则集如下所示:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301]
例如,我们应该
注意-您应该将example.com更改为您自己的域。这是http到https和非www到www重定向使用.htaccess 如果您想重定向到https和www,可以使用此代码 http到https重定向:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
重新启动发动机
重写cond%{HTTPS}!在…上
重写规则^(.*)$https://%{SERVER_NAME}%{REQUEST_URI}[R=301,L]
非www到www重定向:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
重新启动发动机
重写cond%{HTTP_HOST}^www\。[北卡罗来纳州]
重写规则^(.*)$https://www.%{HTTP_HOST}/$1[R=301,L]
如果要使用booth功能,请分别放置上述所有代码只需将以下内容放入
.htaccess
文件中即可
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
我用这个:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [END,NE,R=permanent]
尝试以下方法:
# Redirect 301 all to https://www
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteRule (.*) https://www.example.com/$1 [L,R=301]
</IfModule>
顺便说一句,如果您使用cloudflare,只需创建pagerules将301全部重定向到https和www版本
创建页面规则
充满
example.com/*
选择设置转发url,然后选择301并填写此
https://www.example.com/$1
保存它,所有内容都将重定向到https和www版本。我有一个asp.net网站,主机提供商不支持IIS重写模块。我已测试了所有这些方法,只有此代码向woorank.com提供确认信息,这可能对其他.net开发人员有用:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule (.*) https://www.example.com%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://www.example.com%{REQUEST_URI} [L,R=301]
可能重复感谢@Prix的评论。我尝试过那种反应,但对我不起作用。我不知道到底是什么问题。第二条规则重定向到哪里?@RaviThapliyal它不是重定向。它显示了一个页面中介,上面说:“这不是官方页面。我们重定向到…”5秒钟后重定向到https页面。页面为:。为了显示错误,我说你可以进入Hi@Prix,谢谢你的回答,但不幸的是,我仍然不工作。可能是配置虚拟主机的问题。可能是???@AnibalMauricio你确定你的htaccess或php上没有其他任何东西会导致这种情况吗?我刚刚发现该页面是apache的默认页面,所以问题一定是虚拟主机配置,对吗?@AnibalMauricio如果文档根不同,那么可能是。第二个选项在我的情况下效果更好。我在OpenCart中使用过它。非www重定向到https+www,和
https://site.tld
重定向到https://www.site.tld
。但是如果我的URL是https://example.com/page
它不会重定向到WWW.Any ideas?这适用于具有类似路径url(如WWW.example.com/page one)的angular项目。我不确定这会在现有答案上添加什么,但您有什么理由这样做吗不能只使用example.com和www.example.com?
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule (.*) https://www.example.com%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://www.example.com%{REQUEST_URI} [L,R=301]