Картинки и mod rewrite

VladimirZH

Новичок
Картинки и mod rewrite

Добрый день, вот, недавно сделал на mod rewrite такой скрипт, что теперь все из директории domen.com/users/username доступно через username.domen.com , но возникла проблема: картинки, которые раньше работали по такой ссылке: img src='../../img/image.gif' перестали работать теперь. Кто-нибудь знает, как указать корректный путь к картинкам теперь?

Заранее спасибо!
 

VladimirZH

Новичок
Все равно не отображаются, сделал путь: /www/img/image.gif , оно все равно отображает http://username.domen.com/www/img/image.gif

Возможно как-то в php поменять исходную директорию?
 

Фанат

oncle terrible
Команда форума
откуда у тебя www в корне сайта? ты гонишь.
КОРЕНЬ САЙТА. а не домашний каталог, который тебе выделил провайдер.

блин. ну хоть в этом можно самостоятельно разбираться, а?
и указывать РЕАЛЬНУЕ, СУЩЕСТВУЮЩИЕ пути?
 

VladimirZH

Новичок
public_html? Результат тот же получается . . .
Прошу прощения за глупые вопросы, просто я новичек в этом деле.
 

VladimirZH

Новичок
Спасибо за мануал, взял пример оттуда, но:
<img src='{$_SERVER['DOCUMENT_ROOT']}/img/image.gif'> - не работает даже так . . .
 

Anarki

Новичок
VladimirZH
Тебе же дали ссылку, ты её прочел? Зачем ты вставляешь путь в файловой системе в ссылку? Тебе нужен путь от корня сайта, а не файловой системы.
В виртуальном же сервере - том, который видит пользователь - наоборот, нет никакого диска. Есть корень сайта. То есть, для того, чтобы любая ссылка гарантированно работала, независимо от того, из какого места сайта она вызывается, она должна быть абсолютной.
Если у вас на сайте есть, допустим, два раздела:
http://www.site.ru/about/info.php
и
http://www.site.ru/job/vacancy.php
то, если в файле info.php сделать ссылку просто на vacancy.php, то браузер ее не найдет - он будет искать адрес http://www.site.ru/about/vacancy.php, достраивая путь от текущего каталога.
Поэтому надо писать полный путь от корня сайта - /job/vacancy.php
 

Beavis

Banned
Если совсем мозги не варят и не хочешь думать, то если картинка не отображается - то сначала попробуй эту картинку просто загрузить в браузере, набрав её URL в строке адреса, потом смотри уже на своей странице в свойствах картинки её URL и корректируй его пока он не станет таким каким должен быть.
 

VladimirZH

Новичок
Дело в том, что это два разных домена:
www.domen.com/img/ - это откуда нужно брать картинки
www.username.domen.com - это имя, прописанное через mod rewrite, где они будут - и для них абсолютные директории тоже разные получаются
имя <img src='http://www.domen.com/img/image.gif'> я указать не могу, нужен способ, чтобы картинка имела адрес <img src='http://username.domen.com/image.gif'>, но при этом грузилась из domen.com/img/ - может быть это можно как-то сделать через php?
 

VladimirZH

Новичок
Так поставлено программное задание. Я толком не знаю, но сделать так требуется. Вот, столкнулся с этой проблемой, может быть кто-нибудь знает, как она решается?
 

phpdev2007

Новичок
VladimirZH
есть много вариантов, самый простой для вас это будет копирования картинок, второй вариант прописать правило редиректа запроса в .haccess, конечно можно и через php отдавать картинки перехватив запрос через .htaccess, но думаю ресурсы севера долго не выдержат :)
ищите как составить нужно вам правило через mod_rewrite
 

Фанат

oncle terrible
Команда форума
VladimirZH
если картинку надо запрашивать с другого домена, то писать надо полный урл, а не путь.
РАЗУМЕЕТСЯ.
 

pitbuly

Новичок
Аналогичная проблемма.
А абсолютный путь к файлу - это не выход.Откуда мне знать абсолютный путь когда хостинга ещё нет?
А вписывать
PHP:
'<?=$_SERVER['DOCUMENT_ROOT']?>/img/base.gif'
извиняюсь полный бред. Этож все файлы должны быть .php.
Представьте себе такую конструкцию
PHP:
echo "\n<style type=\"text/css\">\n<!--\n";
require('css/dtree.css.php');
echo "\n//-->\n</style>\n";
echo "<script>\n<!--\n";
require('js/dtree.js.php');
echo "\n//-->\n</script>";
и таких файлов может быть очень много.

-~{}~ 22.03.08 13:28:

Всё дошло.
Нужно просто хорошо поискать по форуму.
нужно в правило mod_rewrite вставлять следующее
PHP:
Options +FollowSymlinks
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
-~{}~ 22.03.08 14:49:

Дошло окончательно.
нужно в блоке <head> прописывать корневой URL в теге BASE: <base href=”http://sitename.ru/”>
 
Сверху