Apache .htaccess重定向所有tld';s到另一个并强制https
您好,我尝试将我的所有顶级域重定向到另一个域,这已经起作用了,但我也想强制使用https。使用以下代码,它可以很好地用于所有顶级域,如“.de”、““.net”等Apache .htaccess重定向所有tld';s到另一个并强制https,apache,.htaccess,redirect,https,url-redirection,Apache,.htaccess,Redirect,Https,Url Redirection,您好,我尝试将我的所有顶级域重定向到另一个域,这已经起作用了,但我也想强制使用https。使用以下代码,它可以很好地用于所有顶级域,如“.de”、““.net”等 RewriteEngine On RewriteCond %{HTTP_HOST} !^(www\.)?domain\.com$ [NC] RewriteRule ^(.*) https://domain.com/$1 [R=301,NE,L] 我的问题是我还想强制我的主tld=>'.com'使用https 好了,我们到了: Rew
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.)?domain\.com$ [NC]
RewriteRule ^(.*) https://domain.com/$1 [R=301,NE,L]
我的问题是我还想强制我的主tld=>'.com'使用https
好了,我们到了:
RewriteEngine On
RewriteCond (http://) !^(www\.)?domain\.com$ [NC]
RewriteRule ^(.*) https://domain.com/$1 [R=301,NE,L]
对我来说,这不起作用。我收到“重定向太多”错误。我现在的问题是,是代码/重定向还是我的提供商的服务器配置有其他问题?我注意到了“太多重定向”错误,直到现在我尝试了从“http://”重定向到“https://”的任何方法,我尝试了很多不同的方法 试试看:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^(www\.)?domain\.com$ [NC]
RewriteRule ^(.*) https://domain.com/$1 [R=301,NE,L]
添加“或”条件,以便在没有HTTPS或域不同时重定向
(http://)
不是一个变量,它是一个文本“http://”,显然永远不会匹配^(www\.)?domain\.com$
,这就是为什么该条件始终为真
由于您使用的是cloudflare,它在内部路由请求(非HTTPS),因此不能使用%{HTTPS}
变量,您需要查看转发协议:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https [OR]
RewriteCond %{HTTP_HOST} !^(www\.)?domain\.com$ [NC]
RewriteRule ^(.*) https://domain.com/$1 [R=301,NE,L]
尝试:
添加“或”条件,以便在没有HTTPS或域不同时重定向
(http://)
不是一个变量,它是一个文本“http://”,显然永远不会匹配^(www\.)?domain\.com$
,这就是为什么该条件始终为真
由于您使用的是cloudflare,它在内部路由请求(非HTTPS),因此不能使用%{HTTPS}
变量,您需要查看转发协议:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https [OR]
RewriteCond %{HTTP_HOST} !^(www\.)?domain\.com$ [NC]
RewriteRule ^(.*) https://domain.com/$1 [R=301,NE,L]
我测试了它,但我得到了错误“ERR\u TOO\u MANY\u REDIRECTS”。我的提供商(apache)的设置是否可能有问题。我还想提到我使用了Cloudflare,但这不是问题的根源,或者我错了?(注意:在测试之前,我总是清除我的缓存等,所以这不会是我的浏览器造成的问题)@user3714751是的,使用cloudflare或aws会有所不同,因为浏览器与cloudflare对话SSL,但cloudflare不会与服务器对话SSL。查看上面的编辑我也测试了上面的编辑,但我得到相同的错误“ERR\u TOO\u MANY\u REDIRECTS”。我已将Cloudflare设置为使用SSL证书,其设置为:flexible。这意味着,如果我的服务器上没有自己的ssl证书,他们会给我一个,因此我不需要购买ssl证书,这是非常好的,因为我可以在Cloudflare上花费的钱保护了我的站点,也给了我一些其他优势。因此,这可能也改变了情况?@user3714751显然cloudflare希望您使用
%{HTTP:CF Visitor}'方案:“HTTP”
:非常感谢您的帮助。是的,看来我只是想通过我的httaccess让它工作,我没有在cloudflare上搜索解决方案。再次感谢你的提示,我想我现在可以开始工作了。我将把你的答案标记为解决方案。我测试了它,但我得到错误“ERR\u TOO\u MANY\u REDIRECTS”。我的提供商(apache)的设置是否可能有问题。我还想提到我使用了Cloudflare,但这不是问题的根源,或者我错了?(注意:在测试之前,我总是清除我的缓存等,所以这不会是我的浏览器造成的问题)@user3714751是的,使用cloudflare或aws会有所不同,因为浏览器与cloudflare对话SSL,但cloudflare不会与服务器对话SSL。查看上面的编辑我也测试了上面的编辑,但我得到相同的错误“ERR\u TOO\u MANY\u REDIRECTS”。我已将Cloudflare设置为使用SSL证书,其设置为:flexible。这意味着,如果我的服务器上没有自己的ssl证书,他们会给我一个,因此我不需要购买ssl证书,这是非常好的,因为我可以在Cloudflare上花费的钱保护了我的站点,也给了我一些其他优势。因此,这可能也改变了情况?@user3714751显然cloudflare希望您使用%{HTTP:CF Visitor}'方案:“HTTP”
:非常感谢您的帮助。是的,看来我只是想通过我的httaccess让它工作,我没有在cloudflare上搜索解决方案。再次感谢你的提示,我想我现在可以开始工作了。我将把你的答案标记为解决方案。