проблема Apache2 mod_vhost_alias

Тема в разделе "Администрирование серверов", создана пользователем Krik, 7 май 2008.

?

Каким хостингом вы пользуетесь?

  1. У меня свой выделенный сервер

    4 голосов
    80,0%
  2. Платным хостином

    0 голосов
    0,0%
  3. Бесплатным хостингом, зачем тратить деньги :)

    1 голосов
    20,0%
  4. У меня нет сайтов. А если и есть, то любуюсь ими дома с денвером или topserver.

    0 голосов
    0,0%
  5. Никогда не слышал(а) слово `хостинг`

    0 голосов
    0,0%
Статус темы:
Закрыта.
Модераторы: mefish, stooper
  1. Krik

    Krik Постоялец

    Регистр.:
    10 авг 2007
    Сообщения:
    55
    Симпатии:
    15
    Зравствуйте, необходимо создавать динамические виртуальные хосты в Apache2.

    В конфиге пишу:

    <IfModule mod_vhost_alias.c>
    VirtualDocumentRoot /home/users/vhosts/%0/
    </IfModule>

    Если идёт запрос через браузер вида http://site.com , то открывается директория:
    /home/users/vhosts/site.com/

    Мне необходимо чтобы если был запрос www.site.com, то также открывалась бы директория:
    /home/users/vhosts/site.com/

    Именно через конфиг апача это возможно сделать ?
    Чтобы если пользователь ввёл домен с www. то переходило в папку без www
    вот :)
     
  2. masto

    masto Прохожие

    ServerAlias не помагает?
     
  3. Krik

    Krik Постоялец

    Регистр.:
    10 авг 2007
    Сообщения:
    55
    Симпатии:
    15
    ServerAlias есть создаю конфиг тогда да.
    Если так, то помогает:

    <VirtualHost *:80>
    DocumentRoot "/home/user/vhosts/site.com"
    ServerName site.com
    ServerAlias www.site.com
    <Directory "/home/user/vhosts/site.com"
    allow from all
    Options -Indexes
    </Directory>
    </VirtualHost>

    Но если создавать хосты динамически, то не знаю даже куда писать :)
    Надо именно чтобы в конфиге этого модуля создавался алиас указывающий на папку без www.
     
  4. masto

    masto Прохожие

    Не обратил внимание что вхосты динамические.

    VirtualDocumentRoot /home/users/vhosts/%-2/
    или
    VirtualDocumentRoot /home/users/vhosts/%2+/
     
  5. Krik

    Krik Постоялец

    Регистр.:
    10 авг 2007
    Сообщения:
    55
    Симпатии:
    15
    %2+ это вторая и последующие части
    всё ok , но у меня суб домены ещё sub.site.com

    вот если ввести www.sub.site.com, то получается
    sub.site.com папка открывается всё ok, а если
    sub.site.com то уже нет. пытается site.com открыть.

    нельзя ли сделать что то вроде правила чтоб если адрес введён c www. то всегда редиректило на адрес без www.

    может regexp'ы какие ?

    или в главном конфиге апача для всех хостов через mod_rewrite прописать правило как то :)

    вот так site.com не открывается тоже. думаю .com хочет открыть)
    вот если так %-2 то как я понял будет брать 2 части с конца , тогда тоже будет вместо sub.site.com просто site.com
     
  6. masto

    masto Прохожие

    поковырявшись в дебрях винта нашёл как я делал на одном проекте.

    1. для обработки www.*
    использовал правило %1
    создал директорию www с файлом index.php
    PHP:
    header('Location: http://' str_replace('www.'''$_SERVER['HTTP_HOST']));
    2. субдомены обрабатывал через ошибку 404, сам файл битый, привести не могу, но принцип в том что из $_SERVER['HTTP_HOST'] выделялся домен (он же директория), проверялось наличие субдомена (поддиректория) и выполнялся необходимый редирект либо возвращалась ошибка.

    Потом вообще отказался от использования динамических вхостов, поскольку DOCUMENT_ROOT получается у всех один и тот же.
    А решение этого без патча Apache я не нашёл.
     
Статус темы:
Закрыта.