|
|
|
| Добрый день! Помогите пож. мне со следующим вопросом. У меня есть URL сдедующего вида
http://mysite.ru/blog/blogname/news
| а мне нужно его сделать вот таким
http://blogname.mysite.ru/news
| т.е. через htaccess получить мне его домен 3го уровня и затем обрабаотов вывести пользователю новсти нужного блога. | |
|
|
|
|
|
|
|
для: Roo$
(06.06.2011 в 14:01)
| | А домен третьего уровня реально существует? | |
|
|
|
|
|
|
|
для: cheops
(06.06.2011 в 14:18)
| | Нет не существует, т.к. его значение (название блога) может быть хоть каим и хоть скока. И каждый раз лесть в админку и создовать его тож как то не охото )) | |
|
|
|
|
|
|
|
для: Roo$
(06.06.2011 в 14:21)
| | Без реального домена третьего уровня ничего не выйдет, у вас просто не будет заполняться переменная окружения SERVER_NAME и вы не сможете пустить в действия RewriteRule. Сервисы, которые делают такие домены, как правило, автоматизируют процесс создания доменов третьего уровня. Если вы хотите что-то подобное у себя реализовать, вам придется каждый раз лазить в систему администрирования. Причем нужен не абы какой домен третьего уровня, а привязанный папке основного домена, чтобы можно было воспользоваться каталогом /blog/ | |
|
|
|
|
|
|
|
для: cheops
(06.06.2011 в 14:34)
| | >чтобы можно было воспользоваться каталогом /blog/
Впринципе он в УРЛе чисто для красоты.. чтоб было понятно что за ним следует название блога.. а постути самого каталога и вней ничего не будет.
Получается нужно создать все нужные домены 3го уровня которые будут вести все в корневой каталог домена второго уровня. А там через RewriteRule вытащу все переменные и отправлю их index.php на обработку, так ведь?! | |
|
|
|
|
|
|
|
для: Roo$
(06.06.2011 в 15:03)
| | Да, только еще через RewriteCond нужно проверить, что вам передан домен третьего уровня, а не второго.
PS Хотя при создании доменов третьего уровня иногда удобнее сразу закоротить их на подпапки с нужными блоками (если, конечно, это хостинг позволяет), тогда rewrite-преобразования вообще не потребуются. | |
|
|
|
|
|
|
|
для: cheops
(06.06.2011 в 15:21)
| | >олько еще через RewriteCond нужно проверить, что вам передан домен третьего уровня, а не второго.
Помогите плиз.. сразу составить запрос такой )) Дапустим домены третего уровня созданны и они все ссылаются на один и отоже каталог. Нужно через htaccess пропарсить URL и передать параметры index.php )) | |
|
|
|
|
|
|
|
для: Roo$
(06.06.2011 в 15:35)
| | Я тестировал вашу проблему на доменах test.dev и blogname.test.dev. У меня вот что получилось
RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_NAME} ^blogname.test.dev$
RewriteRule index.php blog/index.php [L]
|
| |
|
|
|
|
|
|
|
для: cheops
(06.06.2011 в 15:39)
| | А как учесть в скрипте то что blogname - переменная которая будет принимать все время разные значения?! | |
|
|
|
|
|
|
|
для: Roo$
(06.06.2011 в 15:48)
| | Для всех этих значений придется сгененировать правила (обычно в этом случае прибегают к автоматическому формированию .htaccess при помощи скрипта). | |
|
|
|
|
|
|
|
для: cheops
(06.06.2011 в 15:50)
| | А если я в конфиге сервака укажу псевдонимы
ServerName test.dev
ServerAlias *.test.dev
|
То он откроет мне любой домен 3го уровня (да и не тог 3-го). А затем какнитьтаг (но не канает)
RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_NAME} ^(.*).test.dev$
RewriteRule ^(.*).test.dev$ index.php=$1 [L]
|
иль уже на крайняк парсить URL и вытаскивать значение домена третьего уровня (если через htaccess не выйдет)?! | |
|
|
|
|
|
|
|
для: Roo$
(06.06.2011 в 22:09)
| | Псевдоним скорее всего не подойдет, так как ServerName у вас все-равно будет оставаться test.dev, именно это значение пойдет в SERVER_NAME и условие не сработает. | |
|
|
|
|
|
|
|
для: cheops
(06.06.2011 в 22:19)
| | Прописал в конфиге
Сайт (test.dev) теперь открывается с любым поддоменом (3,.. уровн), в принципе что и нужно было. Все же меня избавит это от ручного добавления (создания) DNS 3его уровня. Через
RewriteRule ^(.*).test.dev$ index.php=$1 [L]
| не канает.... походу придется парсить URL и получать сам преффикс (домен 3его уровня) | |
|
|
|
|
|
|
|
для: Roo$
(06.06.2011 в 22:37)
| | ооо хотя вот так же можно ))
RewriteCond %{HTTP_HOST} ^(.*).test.dev$
RewriteRule index.php index.php?qwqw=%1 [L]
|
| |
|
|
|
|
|
|
|
для: Roo$
(06.06.2011 в 23:01)
| | млин чет не пойму.. этот ServerAlias работает как то через раз... то отображает страничку.. то вылетает надпись Невозможно отобразить страницу (: | |
|
|
|