Ссылки не работают из подкаталогов

Я хочу создать несколько страниц на своем веб-сайте, но чтобы все было чисто, я хочу создать разные каталоги с разными страницами. Однако я использую php для создания другого файла с моим заголовком, который включен на все мои страницы, поэтому мне нужно изменить код моего заголовка только один раз, и он будет одинаковым на всех страницах.

Проблема в том, что ссылки, которые я использую в своих пунктах меню (например, домашняя страница, контакты, информация и т. д.), больше не будут работать, когда вы находитесь на странице внутри каталога (ниже я приведу пример).

Итак, мой вопрос: есть ли домашняя папка на веб-сайте (например, ~/ в unix) или есть другой способ заставить ее работать?

Пример моей структуры каталогов:

htdocs
    index.php
    header.php
    menus
        contact.php
        about.php

(ссылка на index.php больше не будет работать, если вы находитесь на странице contact.php)


person Community    schedule 17.05.2017    source источник
comment
Если поставить / перед ссылкой, она начинается с имени домена. Итак, если я нахожусь в example.com/some/lower/dir и перехожу к foo .html, он перейдет на example.com/some/lower/dir/foo.html. . Если я перейду к /foo.html, он перейдет на example.com/foot.html. Я могу создать подкаталог, используя /another/dir/foo.html.   -  person kainaw    schedule 17.05.2017
comment
(ссылка на index.php больше не будет работать, если вы находитесь на странице contact.php) - Итак, где ваш код?   -  person Funk Forty Niner    schedule 17.05.2017
comment
Я бы очень хотел получить ответ от этого ^   -  person Funk Forty Niner    schedule 17.05.2017
comment
Проголосовали за закрытие как неясное. Я попросил разъяснений, но не видел обновления вопроса, а также не ответил на комментарий, на который я оставил; голосование по закрытию ИМХО действительно.   -  person Funk Forty Niner    schedule 17.05.2017


Ответы (2)


Похоже, вы используете относительные пути в ссылках меню. Вместо этого используйте абсолютный путь, начав с "/":

<a href="/index.php">Home</a>
<a href="/menus/about.php">About</a>

или полный URL:

<a href="http://example.com/index.php">Home</a>
<a href="http://example.com/menus/about.php">About</a>
person Matt S    schedule 17.05.2017
comment
Согласен, что это может сработать, но в прошлом я видел вопросы, когда им приходилось использовать полный системный адрес (если он локальный), а OP не публиковал никакого кода или использовался в размещенной службе или локально. Если местный, то мой комментарий надо принять во внимание. - person Funk Forty Niner; 17.05.2017
comment
Кроме того, это: <a href="../index.php">Home</a> должно работать. - person Sumutiu Marius; 17.05.2017
comment
@SumutiuMarius Нет, не будет. Меню должно работать из любого подкаталога. - person Matt S; 17.05.2017
comment
@MattS Конечно. Это зависит от окружающей среды. - person Sumutiu Marius; 17.05.2017
comment
Спасибо @MattS Еще одно, и я имел в виду <a href="/var/home/public/index.php">Home</a> тип вещей. Затем есть корень сервера в соответствии с stackoverflow.com/a/10925538/1415724. Это может быть в любом случае лол - person Funk Forty Niner; 17.05.2017
comment
О, да. Я создаю свои системы, чтобы избежать таких вещей. Но вы правы, пока мы не увидим код, трудно сказать... - person Matt S; 17.05.2017
comment
@MattS да, я спросил их об этом в этом комментарии, но они еще не ответили, если только они не беспокоятся и просто хотят получить ответы/решения или вышли из системы. Может быть, сейчас обеденное время там. - person Funk Forty Niner; 17.05.2017
comment
Большое спасибо, я пробовал это раньше, но это не сработало, теперь я понял, почему: я использую локальный хост на своем ноутбуке в качестве тестового сервера, а внутри моих htdocs у меня есть разные карты с разными сайтами, так что это было указание на карту htdocs вместо домашней папки этого конкретного веб-сайта - person ; 17.05.2017

Доступ к домашнему каталогу веб-сайта можно получить с помощью простого «/» в начале ссылки, которую вы хотите добавить. Оттуда вы можете войти во вложенные папки, добавив имя папки.

Пример: 'example.com/subfolder/subsubfolder/page.html'

person Sam Hanson    schedule 17.05.2017