Apache 使用htaccess将所有URL重定向到https,但驻车和子域除外

Apache 使用htaccess将所有URL重定向到https,但驻车和子域除外,apache,.htaccess,redirect,https,Apache,.htaccess,Redirect,Https,我在一个网站上安装了ssl,需要将所有页面重定向到https。我有一些问题: 1-我有一个停放的域example.com,我想重定向到example.net(主域),匹配任何url,比如example.com/image1.jpg到example.net/image1.jpg,无论它是否包含www 2-我还想从https重定向中排除指向test.example2.net的域test.com(实际上是子域) 我之前已经完成了这项工作,在堆栈溢出上找到了一些代码,但我的最终代码非常长,重定向比需要的

我在一个网站上安装了ssl,需要将所有页面重定向到https。我有一些问题:

1-我有一个停放的域example.com,我想重定向到example.net(主域),匹配任何url,比如example.com/image1.jpg到example.net/image1.jpg,无论它是否包含www

2-我还想从https重定向中排除指向test.example2.net的域test.com(实际上是子域)

我之前已经完成了这项工作,在堆栈溢出上找到了一些代码,但我的最终代码非常长,重定向比需要的要多,我认为不必如此

非常感谢您的帮助

下面的代码适用于所有示例.net URL

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

您可以使用以下规则:

RewriteEngine on
#exclude test.com
RewriteCond %{HTTP_HOST} !test\.com [NC]
#http to https
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?.+ [NC]
RewriteRule ^ https://%1example.net%{REQUEST_URI} [NE,L,R]

感谢您的回答@starkeen。有没有办法不强制使用www,就像我上面的代码一样?@如果你不想在url中使用www,请站起来。只需将其从目标中删除。再次感谢。我明白。我真正想要的是保持原样,所以如果用户来自www,请为www服务,如果不是,那么就感谢您花时间来帮助!