Андрей А.
6 повідомлень
#15 років тому
Добрый день,

Вот столкнулся с таким вопросом:

Есть сайт:

На странице:

Есть ссылка: <a href="catalog/auto">Автотехника</a>

Я так понимаю, что так как ссылка не начинается с "/", значит что это относительная ссылка относительно текущего каталога. Следовательно она должна ссылаться на .

Реально же это ссылка на и это же дают браузеры.

Вопрос по какому правилу это определяется?

С уважением
Максим Ф.
3195 повідомлень
#15 років тому
После about слеш поставьте и будет так как вам нужно.
А без слеша - это корень сайта, поэтому
Андрей А.
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


Большое спасибо!!!
Вот это то, что хотел услышать!!!

Всем спасибо! Вопрос закрыт!