Почему нажатие на ссылки на моем сайте не меняет URL в адресной строке браузера?

1517
Ben

Я ожидаю, что это основной вопрос, но я не уверен, что искать, чтобы получить ответ ...

Я размещаю сайт на Apache 2.2 (в Mac OS X 10.6) и использую директиву Directory и Alias ​​в httpd.conf для обслуживания набора страниц вне DocumentRoot Apache. URL выглядит так для пользователя:

http://mysite/root

У меня настроено автоматическое обслуживание index.html, если вы не укажете файл, который фактически служит:

http://mysite/root/index.html

На этой странице указателя у меня есть ссылки на другие файлы в том же каталоге (например, about.html) в файловой системе. Если я нажимаю один, он прекрасно загружает страницу. Я пытаюсь понять, почему URL-адрес в адресной строке браузера не меняется, когда я это делаю. Другими словами, адресная строка не выглядит так:

http://mysite/root/about.html

Это почему? Я предполагаю, что это какой-то стандарт по умолчанию, который использует Apache? Могу ли я установить его так, чтобы он отображал действительное имя файла в адресе? На данный момент это все еще показывает:

http://mysite/root

что раздражает, так как когда я обновляю страницу в своем браузере, она снова показывает мне index.html!

3

1 ответ на вопрос

3
Arjan

Похоже, это не проблема Apache, но вы index.htmlиспользуете фреймы HTML . Таким образом, чтобы избавиться от этого поведения, вам придется избавиться от кадров.

Обновите, так как это ваш DNS-провайдер, добавляющий эти кадры:

Если у вас есть фиксированный общедоступный IP-адрес, то любой обычный DNS-провайдер позволяет сопоставить ваш домен с каким-то конкретным IP-адресом вместо использования какого-то волшебного набора фреймов. Похоже, ваш DNS-провайдер предлагает это .

Интересно. Я сам не добавил рамки, но похоже, что-то сделал! Должно быть, это был apache или мой провайдер доменного имени / поиска DNS? Ben 14 лет назад 0
@Ben, если вы действительно используете какой-то доменный сервис, который перенаправляет запросы на `some-nice-domain.com` на ваш собственный компьютер, то иногда / часто это действительно использует набор фреймов для" пересылки ". Затем самый внешний набор фреймов обслуживается компьютером, зарегистрированным по хорошему доменному имени, тогда как внутренние фреймы затем ссылаются на некоторый IP-адрес или некоторый «not-too-nice.looking.domain.com», чтобы включить фактический контент сайта. Arjan 14 лет назад 0
Спасибо, Арджан, готов поспорить, вот и все! Я продолжу эту линию и посмотрю, так ли это! Если бы я был, я приму ваш ответ. В любом случае это было хорошее понимание, так что я голосую! Ben 14 лет назад 0
@Ben, кажется, что вы приняли и смешали голосование (но: вы можете отменить как принятие, так и голосование) :-) Что [служба динамического DNS] (http://en.wikipedia.org/wiki/Dynamic_dns) вы используете? А что дает Apache при доступе через `http: // localhost` напрямую, без этой сторонней службы DNS? Arjan 14 лет назад 0
Итак, похоже, что я принял ваш ответ, я просто не могу проголосовать за него (недостаточно репутации!). Я проверю, когда вернусь на свою машину. Приветствия. Ben 14 лет назад 0
У меня есть доменное имя, предоставленное Namesco (в Великобритании), и оно оборачивает каждую страницу в набор фреймов. Как мне это убрать? Как это раздражает! Ben 14 лет назад 0
@Ben, это может быть вариант, который вы можете изменить, но при изменении вы можете больше не видеть свое красивое доменное имя. Если у вас есть фиксированный IP-адрес, то вы можете настроить DNS-записи так, чтобы они указывали на ваш собственный IP-адрес (просто так, как DNS должен работать, без какой-либо хитрости сторонней организации, упаковывающей ваш IP-адрес в некоторый HTML для вы). Arjan 14 лет назад 1
Да, я связался со своим провайдером, и я могу перенаправить, но тогда я не получаю свое красивое доменное имя. Хо гул. Спасибо за помощь, Арджан - я кое-что узнал здесь. Ben 14 лет назад 0