将http重定向到https和非www到www

问题描述:

我遇到了apache2问题。我想将端口80重定向到端口443,但也将非www重定向到www。将http重定向到https和非www到www

在下面的配置我有HTTP到HTTPS重定向工作正常:

<VirtualHost *:80> 
    Redirect permanent/https://www.example.com/ 
</VirtualHost> 

<VirtualHost *:443> 
    ServerName www.example.com 
    DirectoryIndex index.html 
    ... 
</VirtualHost> 

问题是这样的,我可以HTTP重定向到https正常,但是当我去https://example.com它不重定向到https://www.example.com

任何人都可以帮助我解决这个问题吗?

在你<VirtualHost *:443>部分,添加以下规则:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^example\.com$ [NC] 
RewriteRule^https://www.example.com%{REQUEST_URI} [R=301,L] 
+1

这完美的作品。感谢您的协助。你能否给我提供一个关于mod_rewrite的文档,以便我能更好地理解这些规则中的方法?再次感谢。 –

+0

@AaronCouch作为一个初学者,我建议你从以下开始:https://devdocs.io/apache_http_server/rewrite/intro此外,如果答案有帮助,请将其标记为使问题不会列出根据未经回答的问题。名单! :) – hjpotter92