Относительные html ссылки
6 сообщений
#15 лет назад
Добрый день, Вот столкнулся с таким вопросом:
Есть сайт: ссылка
На странице: ссылка
Есть ссылка: <a href="catalog/auto">Автотехника</a>
Я так понимаю, что так как ссылка не начинается с "/", значит что это относительная ссылка относительно текущего каталога. Следовательно она должна ссылаться на ссылка.
Реально же это ссылка на ссылка и это же дают браузеры.
Вопрос по какому правилу это определяется?
С уважением
3195 сообщений
6 сообщений
#15 лет назад
Цитата ("AlekartRu"):После about слеш поставьте и будет так как вам нужно.
А без слеша - это корень сайта, поэтому ]http://www.techhome.ru/catalog/auto
Все равное не понял.
Это не мой сайт, мне его надо распарсить (или сделать обход по всем ссылкам). Вопрос как мне обрабатывать ссылки при том, чтобы этот метод был универсальным и подходил для все других сайтов.
При этом если я в браузере ввожу ссылка или ссылка (я это делаю в хроме), то разницы абсолютно никакой. Т.е. при наведении на ссылку catalog/auto, браузер в обоих случаях выдает абсолютную ссылку ссылка.
578 сообщений
#15 лет назад
Ответ лежит на поверхности )) и AlekartRu уже на него указал.переходя по ссылке http://www.techhome.ru/about фактически мы переходим куда-то типа http://www.techhome.ru/index.php?section=about или еще хуже, но главное - отстаемся в корне.
mod_rewrite рулит в данном случае на сайте доноре.
----------
поэтому если пишете "парсер" то остается только посоветовать прописывать для каждого донора свой метод - универсальных еще никто не изобрел, поэтому мы тут и существуем... отлавливайте слеш на конце (и не забывайте про слеш вначале относ ссылок, и еще про тег base где-нибудь в другом конце кода донора)
15 сообщений
#15 лет назад
Цитата:При этом если я в браузере ввожу ссылка или ссылка (я это делаю в хроме), то разницы абсолютно никакой. Т.е. при наведении на ссылку catalog/auto, браузер в обоих случаях выдает абсолютную ссылку ссылка
Смотрите код внимательней (:
http://www.techhome.ru/about
ссылка <a href="catalog/auto">Автотехника</a>
http://www.techhome.ru/about/
ссылка меняется на <a href="../catalog/auto">Автотехника</a>
Соответственно ../ - ссылка на родительскую дирректорию. В данном случае - корень сайта.
6 сообщений
#15 лет назад
Цитата ("vladmax"):Ответ лежит на поверхности )) и AlekartRu уже на него указал.
переходя по ссылке http://www.techhome.ru/about фактически мы переходим куда-то типа http://www.techhome.ru/index.php?section=about или еще хуже, но главное - отстаемся в корне.
mod_rewrite рулит в данном случае на сайте доноре.
----------
поэтому если пишете "парсер" то остается только посоветовать прописывать для каждого донора свой метод - универсальных еще никто не изобрел, поэтому мы тут и существуем... отлавливайте слеш на конце (и не забывайте про слеш вначале относ ссылок, и еще про тег base где-нибудь в другом конце кода донора)
Хорошо, но как тогда гугл хром правильно определяет фактическое положение?
15 сообщений
#15 лет назад
Цитата ("andreyyur"):Хорошо, но как тогда гугл хром правильно определяет фактическое положение?
Пример.
Текущая ссылка - http://www.techhome.ru/about/blablabla.php?aidjoaiwjd
Соответственно местоположение - http://www.techhome.ru/about/
Берем ссылку из меню - ../catalog/auto (начинается не со слеша, соответственно работаем с текущем местоположением).
Соответственно http://www.techhome.ru/about/../catalog/auto == http://www.techhome.ru/catalog/auto (не забываем, что ../ - означает переход на один уровень вверх)
6 сообщений
#15 лет назад
Цитата ("ferggren"):Цитата ("andreyyur"):Хорошо, но как тогда гугл хром правильно определяет фактическое положение?
Пример.
Текущая ссылка - http://www.techhome.ru/about/blablabla.php?aidjoaiwjd
Соответственно местоположение - http://www.techhome.ru/about/
Берем ссылку из меню - ../catalog/auto
Соответственно http://www.techhome.ru/about/../catalog/auto == http://www.techhome.ru/catalog/auto (не забываем, что ../ - на один уровень вверх)
Спасибо за ответы!
Но все равно не догоняю.
Как браузер (например хром) это определяет:
1. Откуда он знает какая реальная текущая ссылка, если ссылка по которой он пришел имеет вид ссылка?
2. Именно на этой странице (ссылка) ссылка из меню без ".." и без "/" вначале - catalog/auto - тогда как браузер определяет что ему надо спуститься на один уровень вверх?
15 сообщений
#15 лет назад
Цитата ("andreyyur"):2. Именно на этой странице (ссылка) ссылка из меню без ".." и без "/" вначале - catalog/auto - тогда как браузер определяет что ему надо спуститься на один уровень вверх?
Для ссылки http://www.techhome.ru/about местоположение - http://www.techhome.ru/. Соответственно http://www.techhome.ru/ + catalog/auto = http://www.techhome.ru/catalog/auto
6 сообщений
#15 лет назад
Цитата ("ferggren"):
Для ссылки http://www.techhome.ru/about местоположение - http://www.techhome.ru/. Соответственно http://www.techhome.ru/ + catalog/auto = http://www.techhome.ru/catalog/auto
Хорошо. Но тогда что с ответом на первый вопрос?
578 сообщений
#15 лет назад
Цитата ("andreyyur"):Хорошо. Но тогда что с ответом на первый вопрос??????????????????? у вас написано ссылка - по вашему это что? броузер это видит как файл about лежащий в корне. вы никогда не видели файлы без расширения? поверьте они бывают - вот посмотрите например у меня тут http://telesys.ru/tests/ord/orders - это как раз таки файл orders лежащий в директории ord а никак не директория orders. вот именно так и видит это дело броузер, не важно сгенерил это мод-рерайт или это в натуре имя файла.... поэтому в вашем случае активной диреткорией он считает корень а в моем примере активная директория - ord
6 сообщений
#15 лет назад
Цитата ("vladmax"):Цитата ("andreyyur"):Хорошо. Но тогда что с ответом на первый вопрос??????????????????? у вас написано ссылка - по вашему это что? броузер это видит как файл about лежащий в корне. вы никогда не видели файлы без расширения? поверьте они бывают - вот посмотрите например у меня тут http://telesys.ru/tests/ord/orders - это как раз таки файл orders лежащий в директории ord а никак не директория orders. вот именно так и видит это дело броузер, не важно сгенерил это мод-рерайт или это в натуре имя файла.... поэтому в вашем случае активной диреткорией он считает корень а в моем примере активная директория - ord
Большое спасибо!!!
Вот это то, что хотел услышать!!!
Всем спасибо! Вопрос закрыт!