将域名(及所有子域名)重定向到其他域名

将域名(及所有子域名)重定向到其他域名

我想重定向的内容:

example.com          => example.net
whatever.example.com => whatever.example.net

是否可以不将每个单独的子域设置为 Apache 中的别名并使用 mod_rewrite 进行重定向来实现这一点?最好只使用 DNS 来实现这一点,但我不确定这是否可行。

答案1

首先,您需要设置 DNS 以指向每个域的相同 Web 服务器。

其次,在您的 apache 设置中,有多种方法。

1)如果您对每组子域使用 VirtualHosts,则只需添加一个 ServerAlias 行,如下所示:

<VirtualHost *:80>
  ServerName example.com
  ServerAlias example.net
  [...] further commands
</VirtualHost>
<VirtualHOst *:80>
  ServerName whatever.example.com 
  ServerAlias whatever.example.net
  [...] further commands
</VirtualHost>

2)如果您不想输入每个主机名,您可以使用mod_vhost_alias。这是一个示例配置:

UseCanonicalName Off
VirtualDocumentRoot /path/to/vhosts/-2+

这意味着每个域名都将连接到由域名减去最后部分组成的路径。例如:

  • www.example.com将使用/path/to/www.example
  • www.example.net将使用/path/to/www.example
  • example.com将使用/path/to/example
  • example.net将使用/path/to/example
  • whatever.example.com将使用/path/to/whatever.example
  • whatever.example.net将使用/path/to/whatever.example

答案2

答案主要是否定的,因为 DNS 仅用于在域和其 IP 地址之间建立关联(查看此处接受的答案https://stackoverflow.com/questions/9896877/dns-redirect-domain-to-subdomain.htaccess)因此,您应该根据此内容对文件进行更改

RewriteEngine on
Options +FollowSymlinks -MultiViews

# handles http redirect sub-dir
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{SERVER_PORT} =80
RewriteCond %{HTTP_HOST} ^(.+\.)?mysite\.com$ [NC] 
RewriteRule ^/?(.*)$ http://www.anotheriste.com/feed?v=$1 [R=301,L,QSA,NE]

# handles http redirect non sub-dir
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{SERVER_PORT} =80
RewriteCond %{HTTP_HOST} ^(.+\.)?mysite\.com$ [NC] 
RewriteRule ^/?(.*)$ http://www.anotheriste.com/$1 [R=301,L,QSA,NE]

# handles https redirect sub-dir
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{SERVER_PORT} =443
RewriteCond %{HTTP_HOST} ^(.+\.)?mysite\.com$ [NC] 
RewriteRule ^/?(.*)$ https://www.anotheriste.com/feed?v=$1 [R=301,L,QSA,NE]

# handles https redirect non sub-dir
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{SERVER_PORT} =443
RewriteCond %{HTTP_HOST} ^(.+\.)?mysite\.com$ [NC] 
RewriteRule ^/?(.*)$ https://www.anotheriste.com/$1 [R=301,L,QSA,NE] 

您可以在此处找到更多评论(https://stackoverflow.com/questions/5694503/htaccess-redirect-from-any-subdomain-to-another-domain-and-from-directory-to-que)。

相关内容