代码之家  ›  专栏  ›  技术社区  ›  NinjaCat

Modrewrite-虚拟主机

  •  0
  • NinjaCat  · 技术社区  · 16 年前

    我有mydomain.com

    *.conf文件夹包含一些子域和一些虚拟域(如myotherdomain.com)的.conf文件

    我希望所有对http mydomain.com的请求都被重定向到https mydomain.com

    所以我有这个:

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    

    这是可行的,但是http myotherdomain.com被重定向到https myotherdomain.com

    昨天在stackoverflow的帮助下,我把文件改成:

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP_HOST} !myotherdomain\.com
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    

    现有的网站都工作得很好。我现在遇到的问题是http myotherdomain.com没有得到正确的服务——就好像它忽略了myotherdomain.conf:

    <VirtualHost *:80>
        DocumentRoot /home/webadmin/myotherdomain.com/html
        ServerName myotherdomain.com
        ServerAlias "www.myotherdomain.com"
        <Directory /home/webadmin/myotherdomain.com/html>
                Options Includes FollowSymLinks
                AllowOverride All
        </Directory>
    </VirtualHost>
    

    1 回复  |  直到 16 年前
        1
  •  0
  •   NinjaCat    16 年前

    apachectl-S返回:

    VirtualHost configuration:
    wildcard NameVirtualHosts and _default_ servers:
    *:443        is a NameVirtualHost
        default server mydomain.com (/etc/httpd/conf/httpd.conf:1100)
        port 443 namevhost mydomain.com (/etc/httpd/conf/httpd.conf:1100)
        port 443 namevhost mydomain.com (/etc/httpd/conf.d/drupal.conf:3)
        port 443 namevhost mydomain.com (/etc/httpd/conf.d/openid.conf:1)
        port 443 namevhost mydomain.com (/etc/httpd/conf.d/ssl.conf:88)
    
    *:80         is a NameVirtualHost
        default server mydomain.com (/etc/httpd/conf/httpd.conf:1084)
        port 80 namevhost mydomain.com (/etc/httpd/conf/httpd.conf:1084)
        port 80 namevhost myotherdomain.com (/etc/httpd/conf.d/myotherdomain.conf:1)
    
    Syntax OK
    

    推荐文章