Apache2 - 将子域名重定向到另一个 URL

Apache2 - 将子域名重定向到另一个 URL

我有两个子域名 a.website.com 和 b.website.com,它们指向同一个 IP 地址。我想将 b.website.com 重定向到 a.website.com:8080。我的 .htaccess 文件中有这个...

RewriteEngine on
RewriteCond {HTTP_HOST} b\.website\.com
RewriteRule ^(.*)$ http://b.website.com:8080$1 [L]

...但它不起作用。

有没有什么办法可以让它工作?

答案1

你总是可以使用一个简单的VirtualHost:

<VirtualHost *:80>
  ServerName b.website.com
  RedirectPermanent / http://a.website.com:8080/
</VirtualHost>

如果您更喜欢使用 .htaccess 文件,那么您在重写条件中就缺少一个 % 符号:

RewriteEngine on
RewriteCond %{HTTP_HOST} b.website.com
RewriteRule ^(.*)$ http://a.website.com:8080$1 [L]

答案2

补充主要答案

重定向类型

您可以明确指定您假装的重定向类型。
我建议您在测试重定向规则时使用临时重定向(302)。

# In a VirtualHost file
...
Redirect [301|302] /old_location http://new_domain/newlocation


# In a .httaccess file
...
RewriteRule ^(.*)$ http://new_domain/$1 [R=302,L]

指定目录匹配模式

您只能重定向符合某些模式的请求。

# In a VirtualHost file
...
RedirectMatch [301|302] ^/public/(.*)$ http://public.example.com/$1


# In a .httaccess file
...
RewriteRule ^/public/(.*)$ http://public.example.com/$1 [R=302,L]

相关内容