如何将主机名变成重写文件

我们有一些子域名的设置,我想简化一些Apacheconfiguration – 特别是这些特定的子域名是不稳定的。 无论如何,我试图得到一个重写规则,包括主机。

到目前为止,我有:

RewriteEngine On RewriteCond %{HTTP_HOST} ^(.*).net.au$ RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%1.net.au$1 [R=302,L] 

这是基于https://stackoverflow.com/questions/3634101/url-rewriting-for-different-protocols-in-htaccess和http://httpd.apache.org/docs/2.4/rewrite/vhosts.html

但是,第一种情况下的模式并没有写入重写的地址,我最终被发送到.net.au /任何地方(不会让我用https在前面发帖) – 我错过了什么?

在Ubuntu 14.04上运行apache 2.4

Ladadadadabuild议的简单案例在请求主机和预期主机之间的域名相同的情况下工作:

 RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=302,L] 

然而,额外的困难是我也需要有http:// sub-domain.localredirect到http:// sub-domain.net.au – 所以使用%{HTTP_HOST}是不够的。

我又看了一些例子,并认识到%1反向引用似乎只适用于RewriteRule之前的RewriteCond。

我重新sorting:

 RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} ^(.*)(.local|.net.au)$ RewriteRule ^(.*)$ https://%1.net.au$1 [R=302,L] 

redirect工作很好