Назад | Перейти на главную страницу

Лучшие практики настройки виртуальных хостов Apache2 с псевдонимами?

Я устанавливаю свои виртуальные хосты Apache2 на сервере Debian Squeeze следующим образом:

имя файла: something.mydomain.com

Alias /whatever /var/www/whatever.mydomain.com

<VirtualHost *:80>
        ServerAlias whatever.mydomain.com
        ServerAdmin myemail@mydomain.com
        VirtualDocumentRoot /var/www/%0 

        ErrorLog /var/log/apache2/whatever.mydomain.com-error.log
        CustomLog /var/log/apache2/whatever.mydomain.com-access.log combined
</VirtualHost>

<Directory /var/www/whatever.mydomain.com>
        AuthPAM_Enabled On
        AuthType basic
        AuthName "Authorization Required to proceed"
        AuthBasicAuthoritative off
        AuthUserFile /dev/null
        Require valid-user
</Directory>

Я хотел бы обслуживать один и тот же сайт с двумя URL-адресами: something.mydomain.com и www.mydomain.com/whatever

Итак, чтобы решить эту проблему, я настроил псевдоним / something /var/www/whatever.mydomain.com в начале файла. Но я не знаю, хорошая ли это практика. А насчет настройки VirtualHost? Есть что-то, что можно сделать лучше?

И последний вопрос: есть ли способ использовать переменные внутри файла? В качестве примера повторить% 0 в других местах, кроме VirtualDocumentRoot?

Заранее спасибо,

РЕДАКТИРОВАТЬ: у меня возникла новая проблема. С глобальным псевдонимом все мои виртуальные хосты будут отвечать на псевдоним / любой, и я хочу, чтобы псевдоним применялся только к www.mydomain.com. В данный момент я безуспешно борюсь с RedirectMatch. Я использую перенаправление вместо псевдонима, потому что с псевдонимом журнал доступа и ошибок не попадает в файл журнала виртуального хоста.

Возможно, вы захотите разместить псевдоним на собственном виртуальном хосте. Например:

<VirtualHost *:80>
    ServerName www.mydomain.com
    ServerAdmin myemail@mydomain.com
    DocumentRoot /var/www/whatever.mydomain.com

    Alias /whatever /var/www/whatever.mydomain.com
    ErrorLog /var/log/apache2/www.mydomain.com-error.log
    CustomLog /var/log/apache2/www.mydomain.com-access.log combined
</VirtualHost>

Я бы сделал это именно так, но, конечно, есть масса способов сделать что-то в Apache должным образом. Если работает, значит работает ...

Что касается вашего последнего вопроса: вы действительно не можете использовать переменные в файлах конфигурации (за исключением нескольких исключений), но есть сторонние модули, которые, возможно, стоит изучить. Один из них - mod_macro: http://people.apache.org/~fabien/mod_macro/ Другой способ сделать файлы конфигурации более динамичными - это mod_perl, но это действительно сложная тема.