.htaccess сделать папку действовать как root?

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

 /около/
 / Контакт /
 / CSS /
 /изображений/
 .htaccess
 index.php
 header.php

Если они находятся в /contact/index.php , то если у меня <a href="../index.php">Home</a> чтобы перейти на домашнюю страницу, все будет хорошо, но если они будут включены на главной странице, он попытается перейти в каталог ниже.

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

Ответ прямо на ваш вопрос, ответ – нет . К моменту чтения .htaccess путь уже переводится в каталог.

Если вы хотите изменить корень, вы должны сделать это в httpd.conf (или переписать все запросы в корневом каталоге назначения). Если вы хотите иметь несколько корней (в разных доменах), вам нужно использовать виртуальные хосты (опять же, только в httpd.conf ).

Вы также можете сделать свой сайт работать, когда его нет в корневом каталоге.

  • Правильно используйте относительные пути («../index.php» в «/contact/index.php» и «index.php» в корневых веб-страницах). Не отличный вариант.
  • Используйте абсолютные пути, но префикс их путь к веб-сайту относительно корня сервера. Самый надежный способ сделать это, установить константу для этого в файле, который вы включаете во все ваши скрипты.

Это немного взломано … но вы можете создать папку / home и поместить в нее дублируемую копию вашего index.php. Опять же, это полный взлом, но он должен решить то, что вы пытаетесь сделать.

Еще одна вещь, которую следует учитывать, – использовать mod_rewrite в .htaccess для поиска / home и маршрутизации в корневой каталог.

В /contact/index.php вы можете ссылаться на основной index.php, используя

 <a href="/index.php">Link</a>