The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Apache: mod_vhost_alias + virtual hosts"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Др. сетевые сервисы / Linux)
Изначальное сообщение [ Отслеживать ]

"Apache: mod_vhost_alias + virtual hosts"  +/
Сообщение от ALex_hha (ok) on 06-Окт-12, 22:24 
Была настроена связка apache (mod_vhost_alias) + mpm-itk для массового виртуального хостинга. Используется для тестирования различных cms (wp, drupal, joomla). Для каждого проекта используется свой виртуальный хост со своим пользователем. Конфиг апача имеет вид


NameVirtualHost *:80
Listen *:80

<VirtualHost *:80>
    ServerName *.domain1.com
    UseCanonicalName Off

    VirtualDocumentRoot /vhosts/domain1.com/%1
    DirectoryIndex index.php index.html

    AssignUserFromPath "^/vhosts/domain1.com/([^/]+)" service1_$1 service1_$1

    <Directory /vhosts/domain1.com>
        Options -Indexes
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Ну и соотв каждый проет получал url вида http://project_name.domain1.com/. Все отлично работает, но вот захотелось руководству сменить имя домена на example.net, но при этом сделать так, чтобы при заходе по старой ссылке происходила автоматическая переадресация на новое имя. Вот обственно с последней частью и возникла проблема.

Сейчас записи в обеих доменах указывают на один и тот же хост, т.е.

*.domain1.com IN A xxx.xxx.xxx.xxx

*.example.net IN A xxx.xxx.xxx.xxx

После всех изменений на сервере конфигурационные файлы для доменов имеют вид


# /etc/httpd/conf.d/domain1.com.conf
<VirtualHost *:80>
    ServerName *.domain1.com

    DocumentRoot /vhosts/domain1.com/temp_redirect/
    AssignUserID apache apache

    <Directory /vhosts/domain1.com/temp_redirect/>
        Options -Indexes
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Т.е. я все проекты для старого домена направляю в одну папку, где лежит один .htaccess, который и должен осуществлять редирект


RewriteBase /

RewriteCond %{HTTP_HOST} ^([^.]+)\.domain1.com
RewriteRule .* http://%1.example.net/ [L,QSA,R]

Файл для нового домена имеет вид


# /etc/httpd/conf.d/example.net.conf
NameVirtualHost *:80
Listen *:80

<VirtualHost *:80>
    ServerName *.example.net
    UseCanonicalName Off

    VirtualDocumentRoot /vhosts/domain1.com/%1
    DirectoryIndex index.php index.html

    AssignUserFromPath "^/vhosts/domain1.com/([^/]+)" service1_$1 service1_$1

    <Directory /vhosts/domain1.com>
        Options -Indexes
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Но при попытке открыть старую ссылку, т.е. http://project_name.domain1.com/ не происходит никакого редиректа. Кроме того, если я открываю не существующий проект, например http://nonexist_project.domain1.com/, то получаю 500ю ошибку, а в логах апача вижу, что он не находит пользователя от которого будет запущен виртуальный хост, т.е. получается что хосты для домена domain1.com почему то матчатся конфигурационным файлом example.net.conf. Ведь именно в нем используется параметр AssignUserFromPath


[Sat Oct 06 18:13:50 2012] [warn] (itkmpm: pid=3738 uid=0, gid=0) itk_post_perdir_config(): /vhosts/domain1.com/nonexist_project: No such user: 'service1_nonexist_project' (regex: '^/vhosts/domain1.com/([^/]+)', pattern: 'service1_$1')

Собственно как добиться редиректа?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Apache: mod_vhost_alias + virtual hosts"  +/
Сообщение от ALex_hha (ok) on 07-Окт-12, 19:15 
Мб кому и пригодится, все заработало после использования ServerAlias

 
<VirtualHost *:80>
    ServerName redirect.domain1.com
    ServerAlias *.domain1.com

    DocumentRoot /vhosts/domain1.com/temp_redirect
    DirectoryIndex index.php index.html

    php_admin_value open_basedir /vhosts/domain1.com/temp_redirect

    AssignUserID service1_redirect service1_redirect

    <Directory /vhosts/domain1.com/temp_redirect>
        Options -Indexes
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру