[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Каталог на поддоменах
REZzANATOR
Всем привет.

Решил сделать такую вещь.

Есть каталог спортивных товаров. Категории разбиты по виду спорта.

линк примерно такой

site.com/catalog/basket/ - категория
site.com/catalog/basket/streetbool/ - подкатегоория с товарами
site.com/catalog/basket/item/30/ - продукт в подкатегории


Хочу разнести по поддоменам категории и чтобы на каждом поддомене была информация только о данной категории.

пример

basket.site.com - категория
basket.site.com/steetbool/ - подкатегория с товарами
basket.site.com/item/30/ - продукт в подкатегории

Подскажите как реализуется такое со стороны пхп и со стороны сервера (apache или nginx)?



Спустя 1 час, 52 минуты, 52 секунды (7.09.2012 - 21:02) killer8080 написал(а):
Для начала нужно добавить в DNS A-запись с маской субдомена
*.site.com.       A      1.2.3.4

где 1.2.3.4 - ip адрес сервера, при этом все субдомены site.ru будут резолвится на этот адрес.
В апаче в настройках вирт хоста также прописать алиас
ServerAlias "*.site.com"

По настройкам нгинкса не в курсе, думаю там то же должны настраиваться псевдонимы.
На стороне php анализируй запрошенный домен в $_SERVER['HTTP_HOST'].
Как то так.


UPD с nginx-ом оказывается все еще проще, маска задается сразу в server_name

Спустя 4 часа, 35 минут, 25 секунд (8.09.2012 - 01:38) FatCat написал(а):
Делал виртуальные сабдомены.
httpd.conf
<VirtualHost  *>
ServerName *.site.ru
DocumentRoot /home/user/subdomens
</VirtualHost>
<VirtualHost
*>
ServerName site.ru
DocumentRoot /home/user/site
</VirtualHost>


В директории subdomens файл index.php определяет запрошенный сабдомен:
$subdomen = substr($_SERVER['HTTP_HOST'],0,strpos($_SERVER['HTTP_HOST'],".site.ru"));

В зависимости от запрошенного сабдомена из БД берется нужный профиль.

Спустя 3 дня, 9 часов, 38 минут, 12 секунд (11.09.2012 - 11:16) REZzANATOR написал(а):
FatCat, killer8080 Спасибо большое. Лед тронулся)


Пробую на ubunte под nginx

делаю так



server {
listen 80;
server_name test.loc;
root /home/sites/test.loc/www;

error_log /home/sites/test.loc/logs/error.log;

location / {
index index.php;
}

location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}

server {
listen 80;
server_name *.test.loc;
root /home/sites/test.loc/subdomain;

error_log /home/sites/test.loc/logs/error_subdomain.log;

location / {
index index.php;
}

location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}



sub.test.loc

Тишина. Поддомен не отвечает и лог не пишется(

Пробую на денвере

Получается

Откликается только на имя папки, * не прокатывает.

К примеру в home/test.loc/ лежат www и subdomain откликается только на subdomain. А при запросе sub.test.loc тоже тишина.


Подскажите как подправить?

Спустя 9 минут, 19 секунд (11.09.2012 - 11:25) killer8080 написал(а):
Цитата (REZzANATOR @ 11.09.2012 - 11:16)
Пробую на денвере

Получается

Откликается только на имя папки, * не прокатывает.

Потому что браузер не знает куда запрос слать, на денвере придется ручками под каждый субдомен добавлять запись в hosts.

Спустя 27 минут, 16 секунд (11.09.2012 - 11:53) REZzANATOR написал(а):
killer8080, угу понятно.

Как же быть с nginx

Спустя 38 минут, 44 секунды (11.09.2012 - 12:31) killer8080 написал(а):
Цитата (REZzANATOR @ 11.09.2012 - 11:53)
Как же быть с nginx

Настраивать нужно. Виртхост test.loc в апаче, должен слушать интерфейс 127.0.0.1 на 9000 порту, плюс нужно будет исправлять бок с REMOTE_ADDR на бекэнде, прикручивать к апачу mod_rpaf, на нгинксе настраивать передачу REMOTE_ADDR через заголовок X-Real-IP, или X-Forwarded_For. в общем гугли "настройка связки nginx apache"

Спустя 3 часа, 4 минуты, 57 секунд (11.09.2012 - 15:36) REZzANATOR написал(а):
Не, у меня пхп через cgi работает и вместо апача все отдает nginx


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.