如何将主机名写入重写规则

Hor*_*Kol 4 mod-rewrite apache-2.4

我们已经设置了一些子域,我想简化一些 apache 配置 - 特别是因为这些特定的子域是不稳定的。无论如何,我正在尝试获得包含主机的重写规则。

到目前为止,我有:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(.*).net.au$
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%1.net.au$1 [R=302,L]
Run Code Online (Sandbox Code Playgroud)

这是基于/sf/ask/254387101/http://httpd.apache.org/docs/2.4/rewrite/vhosts.html

然而,第一个条件中的模式没有写入重写的地址,我最终被发送到 .net.au/wherever(不允许我在前面发布 https) - 我错过了什么吗?

在 Ubuntu 14.04 上运行 apache 2.4

Hor*_*Kol 5

当请求的主机和预期的主机之间的域名相同时,Ladadadada 建议的简单情况有效:

RewriteEngine On

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=302,L]
Run Code Online (Sandbox Code Playgroud)

但是,一个额外的困难是我还需要http:// sub-domain.local重定向到http:// sub-domain.net.au- 所以使用%{HTTP_HOST}是不够的。

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

我重新排序了东西:

RewriteEngine On

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

而且重定向效果很好


归档时间:

查看次数:

10141 次

最近记录:

11 年,2 月 前