Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   [php, html?] смена директории для относительных путей (http://www.flasher.ru/forum/showthread.php?t=134351)

deeplay 27.12.2009 19:38

[php, html?] смена директории для относительных путей
 
У меня такая проблема: через файл .htaccess я при помощи ErrorDocument перенаправляю все адреса на index.php...там планируется извлекать из адреса нужные параметры, например http://mysite.ru/en/products/ в общем вам понятно, типа ЧПУ.

проблема в том что, все картинки, js, css у меня указаны через относительный путь, ну типа /img/pic.jpg А после htaccess файлы ищутся относительно указанного урл, в данном случае http://mysite.ru/en/products/img/pic.jpg Примерно так.

Помогите функцией или как это избежать...может какая-нибудь есть функция для смены корневого каталога для html, а не самого php (chdir и т.д. не катят)

абсолютные пути указывать не хочется.

screamge 27.12.2009 22:46

Укажите в htaccess чтобы RewriteRule не работал на картинки и на нужные форматы не распространялся.

Типа так:
Код:

RewriteRule ^(.*).jpg$ - [L]
для картинок.

deeplay 27.12.2009 22:53

спасибо за ответ.
дело в том, что я не использую способ mod_rewrite, я решил это делать через ErrorDocument... поэтому правило для реврайта тут не прошло :(

есть ещё идеи?


update:
ещё заметил странность такую: если например путь такой http://mysite.ru/en или любой другой адрес только с одним указаным каталогом, например http://mysite.ru/bla-bla-bla, то всё нормально работает, пути правильные. Но если уже глубже, то есть http://mysite.ru/en/catalog/, то всё сбивается и не отображаются ни картинки, ни css, ни js и т.д. :(

update #2:
а если дописать к концу слеш http://mysite.ru/en/ пути так же сбиваются, а без слеша работает (только для одного каталога)

screamge 27.12.2009 23:44

ErrorDocument предназначен для совершено другого. http://httpd.apache.org/docs/2.0/mod...#errordocument

Меняйте относительные пути на пути от рут каталога.

deeplay 29.12.2009 15:20

проблему решил путем ерег-реплейсом всех относительных путей...
но, как вы отметили, screamge, ErrorDocument - не выход, т.к. ПОСТ-данные не передаются, следовательно поиск с фидбеком не пашут.

теперь решил перейти на мод_реврайт...с регулярными выражениями у меня не хорошо, мягко говоря.
Помогите пожалуйста составить правила для преобразования следующих ссылок:

hxxp://www.test1.ru/en → hxxp://www.test1.ru/?l=en
hxxp://www.test1.ru/en/ → hxxp://www.test1.ru/?l=en (повторяюсь, потому что со слешом ведет себе иногда по другому)
hxxp://www.test1.ru/en/about → hxxp://www.test1.ru/?l=en&main_cat=about
hxxp://www.test1.ru/en/about/clients → hxxp://www.test1.ru/?l=en&parent_cat=about&main_cat=clients

leofit 29.12.2009 15:54

если это все, то прям так и пишите

deeplay 29.12.2009 16:11

нет, это далеко не всё... нужно что-то на подобе такого:
Код:

RewriteRule (.*)/(.*)$ /index.php?l=$1&main_cat=$2
но работает не корректно, плюс мне надо ведь разные уровни, типа такого (код не работает):
Код:

RewriteRule (.*)/(.*)/(.*)/$ /index.php?l=$1&parent_cat=$2&main_cat=$3
мне кажется, что там условия нужны, типа если один уровень, то реврайтруль такой, если два уровня (en/about), то другой и т.д.


Часовой пояс GMT +4, время: 12:46.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.