Php HTTPS重定向到特定URL

Php HTTPS重定向到特定URL,php,apache,.htaccess,mod-rewrite,url-rewriting,Php,Apache,.htaccess,Mod Rewrite,Url Rewriting,我在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/a

我在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]
RewriteCond%{HTTP\u HOST}^subdomain.domain.com$[或]
重写cond%{HTTP_HOST}^www.subdomain.domain.com.gov$
重写规则^/(.*)$http://www.domain.com/topics/apps[R=301]
但如果我尝试同样的https,它不会重定向到该页面,而是显示domain.com主页(而不是重定向)。我猜这是因为subdomain.domain.com的DNS条目也与domain.com具有相同的IP

你们能建议修复这个https重定向到

谢谢,
Sudeer.

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

您有权访问虚拟主机吗?如果是这样,我将跳过重写,只需执行此操作(并重新启动httpd):


ServerName subdomain.domain.com
服务器管理员you@you.com
DocumentRoot此/需要/存在
重定向永久/http://domain.com/topics/apps

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

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>
NameVirtualHost*:443
ServerName myserver.de
重新启动发动机
RewriteLog/var/log/httpd/rewrite.log
重写日志级别0
RewriteCond%{HTTP_HOST}^subdomain.domain.com$[或]
重写cond%{HTTP_HOST}^www.subdomain.domain.com.gov$
重写规则^/(.*)$http://www.domain.com/topics/apps[R=301]
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>