![]() |
|
|
![]()
|
|
| BuShaRt |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: нет Всего: 6 |
Есть сайт, на пример example.com (пусть на сервере он лежит в каталоге /home/user/sites/example/)
Мы делаем сайт спутник, по адресу satellite.example.com (пусть на сервере он лежит в каталоге /home/user/sites/satellite/) Теперь задача реализовать возможность захода на сайт спутник по следующим ссылкам, одновременно, без копирования и перемещения проекта. Важно! Точки входа не должны визуально изменяться т.е. банально средиректить не получиться. satellite.example.com example.com/satellite Изначально задача мне показалась пустяковой. Я планировал повесить на satellite mod_rewrite на поддомен, но как оказалось mod_rewrite не может сделать невидимый ридерект на прямую ссылку (т.е. в строке браузера видно, что произошел ридерект). Промучался пол дня - идей много, но из-за скудного понимания мад. части реализую медленно и возможно криво. Есть у кого-нибудь идеи? |
|||
|
||||
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 1 Всего: 55 |
1. Засунуть в /home/user/sites/example/ символическую ссылку с именем "satellite" на папку /home/user/sites/satellite/.
Сервер при заходе на example.com/satellite будет выдавать сайт из /home/user/sites/satellite/. 2. Использовать mod_alias
-------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
| BuShaRt |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: нет Всего: 6 |
Arantir, Огромное спасибо, оба вариант проверил и оба отлично отработали!
|
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 5 Всего: 386 |
BuShaRt, C символическими ссылками можно попасть и на неприятности, если используется $_SERVER['DOCUMENT_ROOT'].
Его довольно часто используют для вычисления "относительного" пути до файла, чтобы сформировать URI ссылку. При символических ссылках эти вычисления расползаются. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| BuShaRt |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: нет Всего: 6 |
ksnk, Вот как раз столкнулись с этой проблемой, причем для Mod Alias она тоже актуальна.
|
|||
|
||||
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 1 Всего: 55 |
Ну проблема не в ссылках и в моде, а в самом $_SERVER['DOCUMENT_ROOT']. Когда сайт писался с его использованием, то, судя по всему, этот сайт не предполагался как сателитный. Да и вообще использование таких абсолютных значений не рекомендуется. В самом простом случае $_SERVER['DOCUMENT_ROOT'] можно просто заменить на
С таким подходом сайт должен работать относительно своей директории, откуда бы он не запускался. Это сообщение отредактировал(а) Arantir - 23.5.2013, 14:58 -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
| ksnk |
|
||||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 5 Всего: 386 |
Не зная деталей можно только фантазировать на подобные темы То есть ссылка в случае satellite.example.com будет /uploaded/document.docx, а в случае eample.com/satellite - /satellite/uploaded/document.docx ? Откуда берется ссылка на документ? Из базы? В базе, вероятно лежит что-то вроде uploaded/document.docx? "Типичный" код, который обеспечивает формирование адресов безотносительно месторасположения сайта выглядит как-то так index.php
Ну и пара функций, которая готовит для базы имена загруженных файлов и формирует URI адреса по выкачанным из базы ссылкам.
Ошибка этого кода, при использовании modeAliace будет в том, что DOCUMENT_ROOT считается "верхней частью" собственного пути. В общем случае нужно будет иметь какой-то массив с map'ами каталогов файловой системы на uri сервера. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
||||||
|
|||||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |