Ф@РТОВЫЙ Опубликовано 10 июня, 2007 Жалоба Поделиться Опубликовано 10 июня, 2007 Имеется директория /home/userdir/public_html В настройках сервера на нее прописано несколько доменов Так же в этой директории лежит файл index.php Требуется сделать так, чтобы любой запрос на любой из этих доменов обрабатывался этим самым index.php То есть независимо от того, был ли запрос: domen1.com/ или запрос: domen2.com/virtual/path/to/file.html он должен обрабатываться одним и тем же файлом index.php php скрипт обрабатывающий запросы я написал. Вопросы: 1. Что прописать в файле .htaccess чтобы осуществить данную задумку? 2. Где должен лежать данный файл .htaccess - в /home/userdir или в /home/userdir/public_html ? !!! Важно, чтобы работало и на Apache 1.x и на Apache 2.x и на IIS Возможен вариант - под каждый сервер свой .htaccess И еще один вопрос: Можно ли сделать так, чтобы прописав один раз на папку домен, на эту же папку ссылался любой субдомен от этого домена? То есть для веб-сервера запрос что_угодно.domen.com и запрос www.domen.com выглядели абсолютно одинаково. Ссылка на комментарий Поделиться на другие сайты Поделиться
Ramzes_ Опубликовано 10 июня, 2007 Жалоба Поделиться Опубликовано 10 июня, 2007 Для Apache это делается с помощью модуля mod_rewrite. Хорошее описание можно найти здесь: http://www.opennet.ru/docs/RUS/mod_rewrite/ Файл .htaccess положи в public_html Ссылка на комментарий Поделиться на другие сайты Поделиться
Ф@РТОВЫЙ Опубликовано 11 июня, 2007 Автор Жалоба Поделиться Опубликовано 11 июня, 2007 Про mod_rewrite я знаю. Но хочется обойтись без него. Мне не надо перезаписать запрос, мне надо тихо перенаправить его на выполнение одну файлу. Просто у меня он обрабатывает весь запрос - как есть. А если использовать mod_rewrite то php получит другой запрос, не то что запросили в браузере. То есть скрипт потеряет всю логику. Немного объясню задачу поподробнее: Есть неограничено много доменов. И есть одна CMS Нужны ЧПU CMS выдает на каждый домен свой сайт То есть множество сайтов, на одном движке, одной БД, но с разным контентом Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 11 июня, 2007 Жалоба Поделиться Опубликовано 11 июня, 2007 Честно говоря не знаю как сконфигурировать Apache чтоб перенаправлял все запроси к index.php ( но увечен что это можно ), но можно сделать твой скрипт ErrorDocument 404 так что когда напишуть адрес, который несуществуеть ( /virtual/path/to/file.html ) пользватель окажеться на index.php, а вы можете из $_SERVER получить адрес, где он пробувал зайти Ссылка на комментарий Поделиться на другие сайты Поделиться
Ф@РТОВЫЙ Опубликовано 11 июня, 2007 Автор Жалоба Поделиться Опубликовано 11 июня, 2007 Darhazer: обработка ErrorDocument сильно загружает сервер, а я не могу себе это позволить. Попробовал сделать через mod_rewrite как посоветовал Ramzes_ RewriteEngine ONRewriteRule .* index.php работает, как надо. Но есть ли аналог mod_rewrite для сервера MS IIS? Если никто ничего не сможет предложить, то можно сделать запросы в формате: domen.com/?virtual/path/to/file.html Хотя это и не самый красивый(удобный) вариант. ЗЫ: насчет субдоменов вопрос решил сам, прописал в настройках хоста ServerAlias domen.com *.domen.com вроде работает Ссылка на комментарий Поделиться на другие сайты Поделиться
mmap Опубликовано 12 июня, 2007 Жалоба Поделиться Опубликовано 12 июня, 2007 Ты забыл параметры для RewriteRule Правильнее будет так: RewriteEngine ONRewriteRule .* index.php [L,QSA] Здесь L - прекратить обработку правил после совпадения с данным правилом. QSA - передавать index.php все GET и POST параметры. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти