2014-08-29 5 views
0

У меня есть следующие ВХост ниже, моя цель с ним:Настройка apache2 виртуальный хост

  • Перенаправление весь доступ к протоколу HTTPS (OK)
  • Настройка мой SSL сертификат (OK)
  • Удалить WWW из URL

Я до сих пор не могу настроить мой виртуальный хост, чтобы удалить WWW и заставить URL (используя 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' вы, скорее всего, не возникнут какие-либо _other_ порта, чем 80 в любом случае ... Как для реальной проблемы, что вы сделали до сих пор, чтобы отладить это? Проверял журнал доступа и разрешил перезаписывать ведение журнала, чтобы узнать, что на самом деле происходит? Вы в первую очередь убедились, что этот VHost даже обрабатывает входящий HTTP-запрос (поскольку там не указано имя сервера)? – CBroe

+0

Возможный дубликат [удаление www с файлом htaccess для поддоменов] (http://stackoverflow.com/questions/7894531/removing-www-with-htaccess-file-for-subdomains) – jww

ответ

0

Я использую эти две строки, чтобы удалить «WWW»:

RewriteCond %{HTTP_HOST} !^example\.com [NC] 
RewriteRule ^/(.*)   http://example.com/$1 [R=301,L] 
Смежные вопросы