[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ЧПУ и относительная адресация
LRCenter
Хочу использовать ЧПУ на сайте, реализовать с помощью mod_rewrite.

Графику и т.п. храню в папке 'media/' в корне сайта.
Допустим сейчас адрес имеет вид:

/index.php?id=111

С ЧПУ будет выглядеть

/1/2/3/

на сгенерированной странице есть тэги содержащие относительные адреса, типа

<img src='media/2/photo.jpg'>


Браузер попытается открыть /1/2/3/media/2/photo.jpg , и конечно обломается, т.к. папка 'media' находится на одном уровне с виртуальной папкой '1', т.е. в корне.

Ставить абсолютные адреса тоже не хочется, т.к. сайт может со временем поменять доменное имя.

Как решить эту задачу?



Спустя 2 минуты, 29 секунд (8.10.2010 - 15:38) FatCat написал(а):
Цитата (LRCenter @ 8.10.2010 - 16:36)
Ставить абсолютные адреса тоже не хочется, т.к. сайт может со временем поменять доменное имя.

Храните доменное имя в глобальной переменной, и генерируете все ссылки из глобальной переменной.
При переносе на другой домен меняете в одном месте код, и все ссылки начинают работать в новом домене.

Спустя 45 секунд (8.10.2010 - 15:39) FatCat написал(а):
Кстати, яндекс последнее время хуже индексирует страницы с ЧПУ, по нескольким сайтам это вижу...

Спустя 7 минут, 18 секунд (8.10.2010 - 15:47) LRCenter написал(а):
В смысле генерировать на лету? Нагрузка же на сервер лишняя. Может лучше с помощью того же mod_rewrite-а решить?

Спустя 34 минуты, 30 секунд (8.10.2010 - 16:21) vasa_c написал(а):
абсолютные адреса на сайте и абсолютный URI разные вещи.
можно src='/media/2/photo.jpg'

Спустя 3 минуты, 29 секунд (8.10.2010 - 16:25) inpost написал(а):
LRCenter
Случайно не HTML-тег <base> нужен?
<base href="http://<?php echo $_SERVER['SERVER_NAME']; ?>">


Теперь катайся куда хочешь, миленький =)

Спустя 57 секунд (8.10.2010 - 16:25) vasa_c написал(а):
нет, HTML-тег <base> здесь совершенно не нужен.

Спустя 1 минута (8.10.2010 - 16:26) inpost написал(а):
vasa_c
Чем не подходит мой метод? Вполне отлично всё работает, и решает эту конкретную задачу! Он не хочет, так как может перееехать, поэтому и прописываем $_SERVER['SERVER_NAME'], и не мучаемся в дальнейшем!

Спустя 2 минуты, 14 секунд (8.10.2010 - 16:29) LRCenter написал(а):
vasa_c, вы хотите сказать что src='/media/2/photo.jpg' будет работать даже если псевдоадрес страницы с которой запрашивают фотку будет '/1/2/3'?


Спустя 1 минута, 41 секунда (8.10.2010 - 16:30) inpost написал(а):
LRCenter
Чем тебе мой способ не подходит?

Спустя 42 секунды (8.10.2010 - 16:31) LRCenter написал(а):
inpost, а этот тэг корректно поддерживают все браузеры и поисковые пауки?

Спустя 3 минуты, 34 секунды (8.10.2010 - 16:35) vasa_c написал(а):
Цитата
vasa_c, вы хотите сказать что src='/media/2/photo.jpg' будет работать даже если псевдоадрес страницы с которой запрашивают фотку будет '/1/2/3'?

Вы можете проверить это сами.

Цитата
Чем не подходит мой метод? Вполне отлично всё работает, и решает эту конкретную задачу!

Тем, что он совершенно избыточен.

Спустя 2 минуты (8.10.2010 - 16:37) inpost написал(а):
LRCenter
Его поддержка отмечена на сайте: http://htmlbook.ru/html/base
Советую по любым HTML и CSS сюда заходить и проверять! Как видишь - ВСЕ браузеры корректно работают с ним.

Спустя 6 минут, 46 секунд (8.10.2010 - 16:43) LRCenter написал(а):
Спасибо, господа, оба метода выглядят перспективно, попробую оба и сравню.
Вот вам по конфетке user posted image ))


_____________
Меньше кода - меньше багов ©
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.