.htaccess (не загружаются картинки и css по относительным путям)

Leshas0

Новичок
.htaccess (не загружаются картинки и css по относительным путям)

Друзья, помогите с такой проблемой никак не могу побороть.

Проект лежит в папке /project. URL проект имеет следующий: http://localhost/project/

Мой скрипт разбирает строчку на параметры вот так:

Options +FollowSymLinks
Options -Indexes
DirectoryIndex index.php

RewriteEngine ON
RewriteBase /project

RewriteCond %{REQUEST_URI} !\.(php|css|js|htc|png|gif|jpeg|jpg|ico)$
RewriteRule .* index.php


А проблема, которую не могу побороть заключается в том, что я хочу использовать относительные пути для картинок и css, которые лежат в папке /theme (http://localhost/project/theme/), а приведённая выше конструкция этого не позволяет сделать. Я уже перепробовал массу вариантов, но картинки отображаются, а css подключается только при указании АБСОЛЮТНОГО адреса (http://.....), а я хочу использовать относительные.

Вот, что я написал в .htaccess. Почему не получается, не понимаю.

Options +FollowSymLinks
Options -Indexes
DirectoryIndex index.php

RewriteEngine ON
RewriteBase /project

# Вот эту строчку я добавил. Мои рассуждения: если запрошенный адрес заканчивается на png, gif, jpeg, jpg, ico, то
# всё это (^$) перезаписываем как хост (%{HTTP_HOST}) + запрошенный путь (%{REQUEST_URI}). Не работает.
# Пробовал вмето ^$ поставить .* - тот же результат (не работает).
RewriteCond %{REQUEST_URI} \.(png|gif|jpeg|jpg|ico)$ [NC]
RewriteRule ^$ %{HTTP_HOST}%{REQUEST_URI} [L]

# Это так и осталось нетронутым (т.е. копия кода выше)
RewriteCond %{REQUEST_URI} !\.(php|css|js|htc|png|gif|jpeg|jpg|ico)$
RewriteRule .* index.php

Подскажите, как заставить загружать картинки и подключать css по относительным путям?
 

dimagolov

Новичок
удивительно. как можно написать столько всякого и не указать главного, а именно с какой страницы (то есть с каким URL) и с какой именно ссылкой проблемы.

http://phpfaq.ru/path
 

Leshas0

Новичок
путь указан относительно текущей папки (/project), поэтому он вроде как правильный (/theme/images/star.png). Разве нет?
 

Adelf

Administrator
Команда форума
тогда надо theme/images/star.png

Но лучше указывать полный путь от корня. Т.е. /project/theme/images/star.png или относительный от css файла.
 

Фанат

oncle terrible
Команда форума
с какой это стати он будет указан относительно текущей папки (/project), если там черным по белому указано относительно корневой папки (/)
 

Leshas0

Новичок
Что-то вообще никак не получается:

пробовал уж десятки вариантов, никак.

Последний (пробую просто открыть файл css через браузер) вообще выдаёт 500 Internal Server Error:

RewriteCond %{REQUEST_URI} \.css$
RewriteRule .* http://%{HOST}%{REQUEST_URI}

А при конструкции
RewriteCond %{REQUEST_FILENAME} \.css$
RewriteRule .* %{REQUEST_FILENAME}

выдаёт ошибку 403 Forbidden.

Короче, я уже близок к тому, чтобы забить на эти относительные пути, хотя это не совсем правильно, ИМХО, потому как задача в сути своей тривиальна.
 

Фанат

oncle terrible
Команда форума
.htacccess вообще трогать не надо
он здесь не при чем.
надо просто указывать правильный путь
 
Сверху