Поиск:

Ответ в темуСоздание новой темы Создание опроса
> mod_rewrite в поддиректории, слияние путей 
V
    Опции темы
Ams
Дата 20.8.2009, 02:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день.

Столкнулся с такой проблемой при работе 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:
Код

AddDefaultCharset UTF-8
Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteBase /Project/

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^config - [F]
RewriteRule ^ajax - [F]
RewriteRule ^files - [F]
RewriteRule ^templates - [F]
# Fix slashes
RewriteRule ^(.+[^/])$ $1/ [QSA]

RewriteRule ^manager/([A-Za-z]+)/([A-Za-z]+)/$ ./manager.pl?type=$1&subtype=$2 [L,NS]
RewriteRule ^manager/([A-Za-z]+)/$ ./manager.pl?type=$1 [L,NS]

# Switch SSL on
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

В общем, вопрос таков - как избежать приклеивания "manager/view" к моим ссылкам? 
Просто не могу понять из каких условий mod_rewrite берёт manager и view. Мануалы читал, гуглом пользовался.  
 
PM MAIL WWW   Вверх
Nigel
Дата 20.8.2009, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


познаю мир
**


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

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



Когда набираете  http://localhost/Project/manager/view/table выполняется manager.pl?type=view&subtype=table?
PM MAIL   Вверх
Ams
Дата 20.8.2009, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Да, все параметры успешно передаются и открывается новая страница с меню и подменю, где к ссылкам приклеивается "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 - 20.8.2009, 14:49
PM MAIL WWW   Вверх
Ams
Дата 23.8.2009, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Неужто никто не знает в чём загвоздка? За три дня никто так и не сделал предположений.
PM MAIL WWW   Вверх
Nigel
Дата 24.8.2009, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


познаю мир
**


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

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



У вас проблема в скрипте, сами же пишете относительные ссылки <a href="view">view</a>, а потом удивляетесь почему "приклеиваются".
Используйте тэг <base> или пишите абсолютные пути.
PM MAIL   Вверх
Ams
Дата 25.8.2009, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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


 




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


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

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