Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ModRewrite. Подмена директории в завис. от хоста 
:(
    Опции темы
ImamMahdi
Дата 20.3.2009, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 21.6.2007

Репутация: нет
Всего: нет



Не могу решить поставленную задачу, казолось бы, весьма простую.

Имеется директория с шаблонами, допустим, templates. В ней вложенные дирекории, имена которых являются именами алиасов

То есть:

/templates/example1.com/index.html (example1.com)
/templates/example2.com/index.html (example2.com)
/templates/example3.com/index.html (example3.com)

Неоходимо, в зависимости от имени хоста, отдавать нужный файл index.html, при этом имея адрес файла вида /templates/index.html. Крайне желательно, чтобы допустимые хосты не были предопределены (не задавались явно).

PM MAIL   Вверх
DSsupport
Дата 20.3.2009, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 5.3.2009

Репутация: 5
Всего: 5



Каким образом Вы пытались решить эту задачу? Приведите пожалуйста пример правил составленных Вами.
PM MAIL WWW ICQ GTalk Jabber   Вверх
ImamMahdi
Дата 23.3.2009, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 21.6.2007

Репутация: нет
Всего: нет



Да вот в том-то и дело, что я не знаю как правильно задействовать %{HTTP_HOST} в правилах, чтобы добиться желаемого результата...
PM MAIL   Вверх
DSsupport
Дата 23.3.2009, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 5.3.2009

Репутация: 5
Всего: 5



Примеры использования %{HTTP_HOST} можно найти в этом форуме вот здесь

Обязательно прочтите документацию по mod_rewrite, либо наймите специалиста, и он решит Вашу проблему.
PM MAIL WWW ICQ GTalk Jabber   Вверх
ImamMahdi
Дата 24.3.2009, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 21.6.2007

Репутация: нет
Всего: нет



Подобные примеры использования %{HTTP_HOST} я уже видел в изобилии, но мне нужно нечто другое

Мне бы правило, вида (это просто возможный пример. На правильность синтаксиса и т.п не претендую):

Код

RewriteRule ^(/~.+)$ /%{HTTP_HOST}/dir1/dir2/$1 [R,L]


Но, судя по всему, переменная %{HTTP_HOST} таким образом не обрабатывается...

Цитата

документацию по mod_rewrite, либо наймите специалиста, и он решит Вашу проблему.

Документацию чител, но на углубленное ее изучение, в данный момент, времени нет. Было бы, я бы и на форум тогда не полез. Что касается найма специалиста... это конечно хороший вариант, но согласитесь, я и сам мог до него догадаться и если бы была такая возможность, стал бы я тревожить своими вопросами обитателей форма? smile
PM MAIL   Вверх
DSsupport
Дата 24.3.2009, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 5.3.2009

Репутация: 5
Всего: 5



Попробуйте таким образом:
Код

RewriteEngine On 
RewriteRule ^/(.*)$ /templates/%{HTTP_HOST}/$1


Но в идеале иметь для каждого домена свой виртуальный хост.
PM MAIL WWW ICQ GTalk Jabber   Вверх
ImamMahdi
Дата 24.3.2009, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 21.6.2007

Репутация: нет
Всего: нет



Большое спасибо, попробую. Хотя подобные конструкции испытывал и результата не добился...
PM MAIL   Вверх
DSsupport
Дата 24.3.2009, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 5.3.2009

Репутация: 5
Всего: 5



Убедитесь, что директивы Mod Rewrite выполняется, т.е. подключается .htaccess (если rewrite rules записаны в нем) и правильно описан виртуальный хост.

Это сообщение отредактировал(а) DSsupport - 24.3.2009, 17:32
PM MAIL WWW ICQ GTalk Jabber   Вверх
ImamMahdi
Дата 25.3.2009, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 21.6.2007

Репутация: нет
Всего: нет



.htaccess подключается, так как другие правила срабатывают. Виртуальный хост тоже описан правильно, как мне кажется. (Тесты провожу на денвере 3)

Вот мой .htaccess

Код

AddDefaultCharset utf-8
RewriteEngine on
RewriteRule ^/(.*)$ /test/%{HTTP_HOST}/$1
#RewriteBase /
#RewriteRule ^([a-z0-9]+)(\/)?([a-z0-9]+)?$ /index\.php\?__p=$1&__op=$3 [L,QSA]


Закомментировано то, что к текущим тестам не имеет отношения. 

Соответственно есть директория $root/test/test.loc/image.png
Обращаюсь test.loc/image.png

Спасибо за помощь, извините, что время отнимаю
PM MAIL   Вверх
DSsupport
Дата 25.3.2009, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 5.3.2009

Репутация: 5
Всего: 5



Подключите debug для Rewrite и покажите лог mod_rewrite при вызове через браузер http://test.loc/image.png .

Добавьте в виртуальный хост эти строки и уберите их из .htaccess:
Код

<VirtualHost test.loc>

...

AddDefaultCharset utf-8
RewriteEngine on
RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 9 
RewriteRule ^/(.*)$ /test/%{HTTP_HOST}/$1
</VirtualHost>


К сожалению директивы RewriteLog и RewriteLogLevel  не работают с .htaccess

Спасибо.
PM MAIL WWW ICQ GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема »


 




[ Время генерации скрипта: 0.0737 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.