2014-08-29 207 views
0

我在下面下面的虛擬主機,我與他的目標是:配置的Apache2虛擬主機

  • 重定向所有訪問HTTPS(OK)
  • 配置我的SSL證書(OK)
  • 從URL刪除WWW

我仍然不是我的虛擬主機配置,除去了www和FORCE(使用301)的URL網址不帶www

<VirtualHost *:80> 
    RewriteEngine on 
    ReWriteCond %{SERVER_PORT} !^443$ 
    RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L] 
</VirtualHost> 

<VirtualHost *:443> 

    SSLEngine On 
    SSLCertificateFile /usr/local/ssl/api_site_com.crt 
    SSLCertificateKeyFile /usr/local/ssl/myserver.key 
    SSLCACertificateFile /usr/local/ssl/api.site.com.cer 

    ServerName api.site.com 
    ServerAlias www.api.site.com 

    DocumentRoot "/var/www/api.site.com/public" 

    <Directory "/var/www/api.site.com/public"> 
     Options Includes FollowSymLinks 
     AllowOverride All 
     Order allow,deny 
     Allow from all 
    </Directory> 
</VirtualHost> 

任何人都可以幫助我嗎?

+0

在對於指定的虛擬主機'*:80'你很可能不會遇到比在任何情況下,任何80端口_other_ ......作爲對於實際的問題,你到底做了什麼來調試呢?檢查訪問日誌,並啓用重寫日誌記錄以查看實際發生的情況?你首先確定這個VHost是否處理了傳入的HTTP請求(因爲那裏沒有指定ServerName)? – CBroe 2014-08-29 23:37:31

+0

[刪除www與htaccess文件的子域]可能重複(http://stackoverflow.com/questions/7894531/removing-www-with-htaccess-file-for-subdomains) – jww 2014-08-29 23:49:08

回答

0

我用這兩條線取下「WWW」:

RewriteCond %{HTTP_HOST} !^example\.com [NC] 
RewriteRule ^/(.*)   http://example.com/$1 [R=301,L]