V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
kingwrcy
V2EX  ›  问与答

cetnos apace 多网站配置问题

  •  
  •   kingwrcy · 2015-01-22 14:56:15 +08:00 · 2521 次点击
    这是一个创建于 3611 天前的主题,其中的信息可能已经有所发展或是发生改变。
    vps上有2个网站,一个是全站ssl,一个是普通的,apache配置文件:

    <VirtualHost *:443>
    DocumentRoot "/var/www/html"
    ServerName def.net
    ServerAdmin [email protected]
    ErrorLog "/var/log/error_log_1"
    TransferLog "/var/log/access_log_2"

    #Enable/Disable SSL for this virtual host.
    SSLEngine on
    SSLCertificateFile /root/ssl/xx.crt
    SSLCertificateKeyFile /root/ssl/xx.key
    SSLCertificateChainFile /root/data/xx.pem
    </VirtualHost>


    <VirtualHost *:80>
    DocumentRoot "/var/www/xxx"
    ServerName abc.com
    ServerAdmin [email protected]
    ErrorLog "/var/log/error_log_3"
    TransferLog "/var/log/access_log_4"
    </VirtualHost>

    因为指定了443到def.net,80到abc.com,导致访问错误

    直接访问def.net到了abc.com,加上https://def.net是正常的.
    访问abc.com自动跳到了https://def.net

    def网站的 /var/www/html/.htaccess:

    <IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php\?p=$1 [QSA,L]
    RewriteEngine On
    RewriteCond %{HTTPS} !on [NC]
    RewriteCond %{HTTP_USER_AGENT} !(baiduspider|soso|bing|sogou|yahoo|sohu-search|yodao|robozilla|msnbot|msie|feedburner) [NC]
    RewriteRule (.*) https://def.net%{REQUEST_URI} [R=301,NC,L]
    </IfModule>

    网上copy来的

    要实现的是
    1. 访问def.net,http://def.net,https://def.net都跳到https://def.net
    2. 访问abc.com能正常访问对应的网站内容

    求指导,网上搜索一圈没遇到相同的问题.
    9 条回复    2015-01-23 20:07:10 +08:00
    bilok
        1
    bilok  
       2015-01-22 15:06:01 +08:00
    用 Nginx 不是很懂 Apache
    我只是想提醒下楼主
    下次打标题的时候可以慢一点
    kingwrcy
        2
    kingwrcy  
    OP
       2015-01-22 15:09:29 +08:00 via iPhone


    打错了两个单词,真是手误啊啊,没脸见人了
    ryd994
        4
    ryd994  
       2015-01-22 15:41:36 +08:00
    加一个def.net的virtualhost在80上,跳转到https
    kingwrcy
        5
    kingwrcy  
    OP
       2015-01-22 16:54:11 +08:00
    @ryd994 好像没有效果,网上也没搜到同时有ssl和非ssl的
    0x1e240
        6
    0x1e240  
       2015-01-22 19:30:57 +08:00 via Android
    http是80端口,如3L所说,def加80端口301到HTTPS
    0x1e240
        7
    0x1e240  
       2015-01-22 19:33:34 +08:00 via Android
    你的def没配80端口,htaccess怎么跳
    luo362722353
        8
    luo362722353  
       2015-01-22 20:10:07 +08:00 via iPhone
    def添加80配置…不然直接去了abc.com
    ryd994
        9
    ryd994  
       2015-01-23 20:07:10 +08:00
    @kingwrcy 你要的不是同时有http和https
    而是http虚拟多站+其中一个跳转+https站
    所以80上放两个站abc和def,def单纯作跳转,abc正常服务
    443上放def提供服务
    因此也不要写到htaccess里,而是在httpd.conf里,写3个站

    访问的时候记得用域名访问,用IP的话是不能虚拟多站的,这里再提一下

    顺带一提,443上其实也可以放多站,这叫sni
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3108 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 04:57 · PVG 12:57 · LAX 20:57 · JFK 23:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.