如何将www重定向到非www https?

时间:2018-10-16 19:53:45

标签: apache ubuntu-16.04 no-www

我已经在域中安装了https。所有这些情况都可以在我的网站上找到:

Vector

看到了吗?一切都将使用https协议。很好。


现在,我需要将所有http://example.com // will be redirected to https://example.com https://example.com http://www.example.com // will be redirected to https://www.example.com https://www.example.com 重定向到www。因此,non-wwwhttp://www.example.com应该重定向到https://www.example.com (换句话说,所有情况都应该重定向到此)

这是我当前在https://example.com中的代码:

/etc/apache2/sites-avalible/000-default.conf

有什么主意吗?

如果您需要检查某些内容,lamtakam也是我所说的确切领域。


编辑:

目前,我在项目根目录下的<VirtualHost *:80> . . . RewriteEngine on RewriteCond %{SERVER_NAME} =lamtakam.com [OR] RewriteCond %{SERVER_NAME} =www.lamtakam.com RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] -- this RewriteRule ^(.*)$ https://%1/$1 [R=301,L] -- and this are for www redirection -- but doesn't work </VirtualHost> 文件中有此文件:

.htaccess

1 个答案:

答案 0 :(得分:2)

如果您想要VirtualHost中的规则,那么它将是2套规则。如果您可以将规则保留在站点根.htaccess中,那么它将是一条规则。我在这里提供.htaccess规则:

RewriteEngine On

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

确保删除上面VirtualHost中显示的现有规则,并在新的浏览器中进行测试以避免旧的浏览器缓存。