| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Администрирование Web серверов и Web служб > ModRewrite. Подмена директории в завис. от хоста |
| Автор: ImamMahdi 20.3.2009, 15:17 |
| Не могу решить поставленную задачу, казолось бы, весьма простую. Имеется директория с шаблонами, допустим, 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. Крайне желательно, чтобы допустимые хосты не были предопределены (не задавались явно). |
| Автор: DSsupport 20.3.2009, 21:05 |
| Каким образом Вы пытались решить эту задачу? Приведите пожалуйста пример правил составленных Вами. |
| Автор: ImamMahdi 23.3.2009, 18:42 |
| Да вот в том-то и дело, что я не знаю как правильно задействовать %{HTTP_HOST} в правилах, чтобы добиться желаемого результата... |
| Автор: DSsupport 23.3.2009, 20:31 |
| Примеры использования %{HTTP_HOST} можно найти в этом форуме http://forum.vingrad.ru/forum/topic-250463.html Обязательно прочтите http://www.egoroff.spb.ru/portfolio/apache/mod_rewrite.html, либо наймите специалиста, и он решит Вашу проблему. |
| Автор: ImamMahdi 24.3.2009, 12:07 | ||||
| Подобные примеры использования %{HTTP_HOST} я уже видел в изобилии, но мне нужно нечто другое Мне бы правило, вида (это просто возможный пример. На правильность синтаксиса и т.п не претендую):
Но, судя по всему, переменная %{HTTP_HOST} таким образом не обрабатывается...
Документацию чител, но на углубленное ее изучение, в данный момент, времени нет. Было бы, я бы и на форум тогда не полез. Что касается найма специалиста... это конечно хороший вариант, но согласитесь, я и сам мог до него догадаться и если бы была такая возможность, стал бы я тревожить своими вопросами обитателей форма? |
| Автор: DSsupport 24.3.2009, 14:50 | ||
Попробуйте таким образом:
Но в идеале иметь для каждого домена свой виртуальный хост. |
| Автор: ImamMahdi 24.3.2009, 17:03 |
| Большое спасибо, попробую. Хотя подобные конструкции испытывал и результата не добился... |
| Автор: DSsupport 24.3.2009, 17:30 |
| Убедитесь, что директивы Mod Rewrite выполняется, т.е. подключается .htaccess (если rewrite rules записаны в нем) и правильно описан виртуальный хост. |
| Автор: ImamMahdi 25.3.2009, 11:57 | ||
| .htaccess подключается, так как другие правила срабатывают. Виртуальный хост тоже описан правильно, как мне кажется. (Тесты провожу на денвере 3) Вот мой .htaccess
Закомментировано то, что к текущим тестам не имеет отношения. Соответственно есть директория $root/test/test.loc/image.png Обращаюсь test.loc/image.png Спасибо за помощь, извините, что время отнимаю |
| Автор: DSsupport 25.3.2009, 20:55 | ||
| Подключите debug для Rewrite и покажите лог mod_rewrite при вызове через браузер http://test.loc/image.png . Добавьте в виртуальный хост эти строки и уберите их из .htaccess:
К сожалению директивы RewriteLog и RewriteLogLevel http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteLog Спасибо. |