HTTPS重定向到特定URL

时间:2014-12-04 19:27:50

标签: 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/apps[R=301]

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

你们可以建议将此https重定向修改为http://domain.com/topics/apps

谢谢, Sudeer。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您是否可以访问虚拟主机?如果是这样,我会跳过重写并简单地执行此操作(并重新启动httpd):

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

答案 2 :(得分:0)

您需要在端口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>