.htaccess сделать папку действовать как root? - PullRequest
2 голосов
/ 19 августа 2010

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

/about/
/contact/
/css/
/images/
.htaccess
index.php
header.php

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

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

Ответы [ 3 ]

4 голосов
/ 19 августа 2010

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

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

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

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

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

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

0 голосов
/ 19 августа 2010

На /contact/index.php вы можете связать основной файл index.php с помощью

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