如何有2个域名指向同一个网站,一个http和另一个https

我目前已经改写在example.com工作,整个网站是HTTPS,使用这个:

 RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] 

我需要很多文件在这个完全相同的网站上,可以通过第二个域名访问,并通过HTTP,例如: http://example.net/files/....

我尝试添加example.net作为ServerAlias但当然这只是redirect,然后重写https://example.net/files

我从互联网复制了重写规则,并且不确定修改它的正确方法。

我正在按照改写重写规则的思路来思考:

 RewriteRule ^example.com/?(.*) https://example.com/$1 [R,L] 

所以只有在包含example.com URL才会被重写。那么我是否需要为TLD域自身重写规则,而不是通配符条目?

请有人可以帮助正确的方式来实现这一点,以便对ServerAliasexample.net )的请求不被重写?

如果您想要将两个域指向相同的内容。 例如。 example.comexample.net 。 然后为每个域创build单独的虚拟主机,但将它们指向相同的文档根目录 。 为HTTP( http://example.com )添加一个具有80的VirtualHost条目,并使用HTTPS( https://example.net )添加具有443的另一个域条目并分配要求的SSL条目。

正如Sunil所build议的那样,您可以创build单独的虚拟主机,然后SSLredirect仅发生在第一个虚拟主机(即example.com端口80)中。 (你也可以避免使用mod_rewrite,只使用一个mod_alias Redirect ,这将是可取的。)

但是,你也可以做你正在build议的,并创build一个ServerAlias example.net (你的其他域),并包括一个条件 (即REwriteCond指令)在当前的redirect,只redirectexample.com域。 例如:

 RewriteEngine On RewriteCond %{HTTPS} !=on RewriteCond %{HTTP_HOST} ^(www\.)?example\.com [NC] RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] 

请注意,这应该是一个301(永久)redirect,一旦你确认它工作正常。 即。 [R=301,L]