2014-09-27 158 views
1

我知道关于这方面的堆栈溢出有很多问题,但是我发现的解决方案似乎都没有正常工作。.htaccess将所有请求重定向到非www https域?

我已经建立了一个SSL证书,要求它的域名是非www。

我想重定向用户访问我的网站,以https://example.com无论身在何处,他们都来了来自:

http://example.com成为https://example.com

http://www.example.com成为https://example.com

https://www.example.com成为https://example.com

应简单但不幸的是我没有.htaccess的知识。我感谢任何帮助!

回答

1

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代码:

RewriteEngine On 

RewriteCond %{HTTPS} off [OR] 
RewriteCond ^www\. [NC] 
RewriteRule^https://example.com%{REQUEST_URI} [R=301,NE,L] 
+0

这个规则没有子目录工作正确的,但是当你添加子目录,案例https://www.example.com/LineDemo。让我知道你可以解决这个问题,并更新htaccess规则 – 2017-07-15 10:12:43

+0

此规则与子目录无关。你可能有其他一些问题。请详细解答一个新问题,我会尽力回答。 – anubhava 2017-07-15 10:45:06

+0

感谢Anubhava的快速回复,但我已经解决它在这篇文章的帮助下,https://simonecarletti.com/blog/2016/08/redirect-domain-http-https-www-apache/ – 2017-07-15 11:19:16

0

以下规则集满足所有低于6的情况:

RewriteEngine On 
RewriteCond %{HTTPS} off [OR] 
RewriteCond %{HTTP_HOST} ^www\. [NC] 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC] 
RewriteRule^https://%1%{REQUEST_URI} [L,NE,R=301] 


Cases: 
C1: http://example.com/ 
C2: http://www.example.com/ 
C3: https://www.example.com/ 

C4: http://example.com/LineDemo/ 
C5: http://www.example.com/LineDemo/ 
C6: https://www.example.com/LineDemo/ 
相关问题