我在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。查找正在侦听443
的VirtualHost
,并在那里设置重定向。
你有权访问幽灵吗? 如果是这样,我会跳过重写并简单地执行此操作(并重新启动httpd):
<VirtualHost *:443>
ServerName subdomain.domain.com
ServerAdmin you@you.com
DocumentRoot this/needs/to/exist
Redirect permanent / http://domain.com/topics/apps
</VirtualHost>