0 / 0 / 0
Регистрация: 11.01.2013
Сообщений: 3
1

Переадресация поддоменов

11.01.2013, 20:07. Показов 2972. Ответов 5
Метки нет (Все метки)

Доброе утро!

Если не трудно, мог бы кто-нибудь помочь сформулировать правило .thaccess для следующей задачи:

Что есть:

1) Есть хостинг домена http://mydomain.ru/ и DNS настроенный переадресовывать запросы на любые поддомены на основной домен.

2) В корне сайта есть index.php - точка входа для всех запросов к сайту. На него перезаписываются все запросы
вида: http://mydomain.ru/any/path/you/want , если конечно путь не является путем к файлу или папке в ФС.

Делается это с помощью следующих правил:

Код
  RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ /index.php/$1 [L]
Т.е. фактически запрос приходящий на http://mydomain.ru/any/path/you/want перезаписывается как http://mydomain.ru/index.php/any/path/you/want , а далее контроллер в зависимости от пути "решает" какой контент отдавать клиенту. Естественно адрес в строке при этом не переписывается.

Что нужно:

1) Нужно организовать следующую логику:

Если запрос пришел на ЛЮБОЙ из поддоменов (http://any.mydomain.ru/path) перезаписывать его в определенную виртуальную директорию, БЕЗ ИЗМЕНЕНИЯ АДРЕСА!

Конкретно задача - создать видимость пользовательских поддоменов, виде http://username.mydomain.ru/path

Пример: http://username.mydomain.ru/path -> http://mydomain.ru/users/username/path

К сожалению я совсем не силен в настройке апача, поэтому уже второй день не могу сформулировать казалось бы такое просто правило. Если вы поможете, буду очень признателен.

Добавлено через 11 часов 41 минуту
Неужели никто не знает как осуществить такое?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.01.2013, 20:07
Ответы с готовыми решениями:

Переадресация поддоменов в htaccess
Здравствуйте. На локальном хосте есть сайт inblog.ru, нужно сделать так чтобы он делал...

Создание поддоменов
Доброго времени суток всем! У меня есть сервер под убунтой. На нём установлен Apache, mysql....

Настройка динамических поддоменов
добрый день. возникла необходимость создавать на сайте страницы региональных представительств на...

Создание поддоменов из папок
Здравствуйте, и так проблема вот в чём нужны поддомены из папок названием поддомена должно...

5
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
11.01.2013, 21:23 2
javi,
Код
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_REFERER} ^(.*)\.mydomain\.ru$
RewriteRule ^(.*)$ users/%1/$1 [L,QSA]
PS: Возможно для работы придётся поставить флаг N
0
0 / 0 / 0
Регистрация: 11.01.2013
Сообщений: 3
12.01.2013, 07:24  [ТС] 3
Цитата Сообщение от Илья Федин Посмотреть сообщение
javi,
Код
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_REFERER} ^(.*)\.mydomain\.ru$
RewriteRule ^(.*)$ users/%1/$1 [L,QSA]
PS: Возможно для работы придётся поставить флаг N
Не очень понял причем тут {HTTP_REFERER} ? Запросы на поддомены не редиректятся, а просто адресовываются в ту же директорию что и основной домен. Далее полное имя домена доступно в переменной:

PHP
1
$_SERVER['HTTP_HOST'] == 'some.mydomain.ru'; //TRUE
Предполагаю, что если рассматривать ваш вариант, нужно использовать {HTTP_HOST} вместо {HTTP_REFERER} .

Однако я получаю Internal Server Error при этом:
Код
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} ^(.*)\.mydomain\.ru$
RewriteRule ^(.*)$ users/%1/$1 [L,QSA]
Еще варианты?
0
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
12.01.2013, 14:04 4
javi, Вы написали что все поддомены редиректятся на основной
Цитата Сообщение от javi Посмотреть сообщение
Есть хостинг домена http://mydomain.ru/ и DNS настроенный переадресовывать запросы на любые поддомены на основной домен.
Этот код для основного, он смотрит REFERER и если запрос пришёл с поддомена - реврайтит на http://mydomain.ru/users/поддомен/path

Добавлено через 23 секунды
Цитата Сообщение от javi Посмотреть сообщение
нужно использовать {HTTP_HOST} вместо {HTTP_REFERER}
Нет
0
0 / 0 / 0
Регистрация: 11.01.2013
Сообщений: 3
15.01.2013, 10:30  [ТС] 5
Я написал переадресовываются, просто не знал как еще лучше написать.

Ок, признаю свою не точность. Запросы не редиректятся и не переадресовываются, а "уходят" в ту же директорию веб-сервера, что и основной домен.

Как быть в таком случае?
0
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
15.01.2013, 10:35 6
javi,
Код
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} ^(.*)\.mydomain\.ru$
RewriteRule ^(.*)$ http://mydomain.ru/users/%1/$1 [R=301,L,QSA]
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.01.2013, 10:35

ServerAlias для поддоменов
Приветствую! У меня ОС Убунту 16.04 и веб сервер Apache2. Есть проект на PHP Laravel и нужно...

Универсальный htaccess для поддоменов?
Мне нужно чтобы с поддоменов перенаправлялось в папку, сейчас сделано вот так RewriteEngine On ...

Базовая авторизация для всех поддоменов
Приветствую. Не смог найти ответ на такой вопрос: нужно закрыть базовой авторизацией все поддомены,...

Как сделать редиректы со всех поддоменов?
Здравствуйте всем! Хотели бы чтобы все адреса типа такого перенаправлялись на новый адрес ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.