HTTPS 重定向到特定网址


HTTPS redirect to specific URL

我在httpd.conf中设置了以下重定向,它将 subdomain.domain.com 重定向到 domain.com/topics/apps

RewriteCond %{HTTP_HOST} ^subdomain.domain.com$ [OR]<br>
RewriteCond %{HTTP_HOST} ^www.subdomain.domain.com.gov$<br>
RewriteRule ^/(.*)$ http://www.domain.com/topics/apps[R=301]

但是,如果我尝试使用 https 进行相同的操作,它不会重定向到该页面,而是显示 domain.com 主页(不是重定向)。我想这是因为 subdomain.domain.com 的 DNS 条目也具有与 domain.com 相同的 IP。

你们能建议修复这个https重定向到 http://domain.com/topics/apps 吗?

谢谢苏迪尔。

您需要在端口 443 上设置虚拟主机,并在 IP 相同但名称不同时将其设置为命名虚拟主机。

NameVirtualHost *:443
<VirtualHost *:443>
    ServerName myserver.de
    RewriteEngine On
    RewriteLog /var/log/httpd/rewrite.log
    RewriteLogLevel 0  
    RewriteCond %{HTTP_HOST} ^subdomain.domain.com$ [OR]
    RewriteCond %{HTTP_HOST} ^www.subdomain.domain.com.gov$
    RewriteRule ^/(.*)$ http://www.domain.com/topics/apps[R=301]
</VirtualHost>

我的经验是,默认情况下,Apache使用不同端口上的单独VirtualHost处理SSL。查找正在侦听443VirtualHost,并在那里设置重定向。

你有权访问幽灵吗? 如果是这样,我会跳过重写并简单地执行此操作(并重新启动httpd):

<VirtualHost *:443>
  ServerName subdomain.domain.com
  ServerAdmin you@you.com
  DocumentRoot this/needs/to/exist
  Redirect permanent / http://domain.com/topics/apps
</VirtualHost>