| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Администрирование Web серверов и Web служб > mod_rewrite в поддиректории, слияние путей |
| Автор: Ams 20.8.2009, 02:38 | ||
| Добрый день. Столкнулся с такой проблемой при работе mod_rewrite. Допустим, есть сайт, где основной обрабатывающий скрипт manager.pl находится в папке Project/. Пользователю отдаётся страница с меню, где ссылки вида http://localhost/Project/manager/view (manager это виртуальная папка, сгенерированная mod_rewrite). Из этого меню скрипт принимает запросы так: manager.pl?type=view. Также есть подменю, где есть ссылки вида http://localhost/Project/manager/view/table, здесь скрипту уже идёт запрос manager.pl?type=view&subtype=table. Проблема такая - при переходе по любой из ссылок пути склеиваются, то есть получаются ссылки уже http://localhost/Project/manager/view/view. Будь скрипт в корне, можно было бы избежать такой проблемы используя относительный путь, а так, данный путь - "manager/view" приклеивается и к меню, и к папкам с картинками, css и js -файлам. Собственно, вот сам .htaccess:
В общем, вопрос таков - как избежать приклеивания "manager/view" к моим ссылкам? Просто не могу понять из каких условий mod_rewrite берёт manager и view. Мануалы читал, гуглом пользовался. |
| Автор: Nigel 20.8.2009, 10:05 |
| Когда набираете http://localhost/Project/manager/view/table выполняется manager.pl?type=view&subtype=table? |
| Автор: Ams 20.8.2009, 14:37 |
| Да, все параметры успешно передаются и открывается новая страница с меню и подменю, где к ссылкам приклеивается "manager/view". Если поточней, то порядок действий такой: 1. Открываем страницу, есть меню, там ссылки https://localhost/Project/manager/view. В подменю ссылки https://localhost/Project/manager/view/table и т.д. 2. Переходим по любой ссылке в подменю, и теперь ссылки в меню https://localhost/Project/manager/view/view и подменю https://localhost/Project/manager/view/view/table. В скрипте ссылки для меню выглядят как <a href="view">View</a>, для подменю <a href="view/table">Table view</a>. А FireBug показывает, что для картинок, css/js - файлов, которые лежат в папке "templates/" запрос выглядит так: https://localhost/Project/manager/view/templates/js/main.js |
| Автор: Ams 23.8.2009, 12:52 |
| Неужто никто не знает в чём загвоздка? За три дня никто так и не сделал предположений. |
| Автор: Nigel 24.8.2009, 09:49 |
| У вас проблема в скрипте, сами же пишете относительные ссылки <a href="view">view</a>, а потом удивляетесь почему "приклеиваются". Используйте тэг <base> или пишите абсолютные пути. |
| Автор: Ams 25.8.2009, 00:43 |
| Да, спасибо, про тег base я и вовсе забыл. Проблема решена. |