2013-12-10 3 views
0

Спасибо за чтение!Управление ссылками в PHP Включает использование htaccess

Я управляю заголовком со ссылками, использующими PHP include. Он находится в папке /includes/header.php.

Вот пример того, что header.php выглядит следующим образом:

<nav> 
    <ul> 
     <li><a href="index.php">Home</a></li>    
     <li><a href="page.php">Page</a></li> 
    </ul> 
</nav> 

Когда я добавляю включать в файл в корневой директории, как /index.php, я добавляю его так: <?php include_once("header.php"); ?>. Все это прекрасно работает, и ссылки указывают, где им нужно.

Когда я делаю то же самое, но с файлом в подкаталоге, например, файл с именем /foo/page.php, я добавлю include следующим образом: <?php include_once("../includes/header.php"); ?> - таким образом он захватывает файл правильно.

Моя проблема в том, что все ссылки в файле header.php не идут туда, где я хочу их. Я нашел некоторую информацию об использовании заданной функции среды в .htaccess, но я не знаю, что с ней делать.

Если у вас есть ответ на эту проблему, я бы хотел ее услышать! Благодаря!

ответ

1

Запустите все ссылки в заголовке из корневого веб-каталога.

Просто сделайте;

"/index.html" 
"/subdirectory/link.html" 

Так в основном просто начать все ссылки с косой чертой, так как без него, он будет искать страницы в текущем каталоге.

0

Сохраните базовый url вашего приложения в файле конфигурации или базе данных, а затем используйте его для создания абсолютных ссылок, не относящихся к ним. Например у вас есть файл, как config.php:

<?php 
$baseUrl = "http://yourdomain/yourapp/"; 

И в header.php:

<?php include_once("config.php"); ?> 
<a href="<?php echo $baseUrl; ?>page.php">Page</a> 

Это может показаться неудобным необходимости редактировать файл в случае, если переместить приложение, но этот путь ваши ссылки будут работать в любом каталоге в любое время, и по мере роста вашего приложения появятся другие вещи, такие как доступ к БД, которые также необходимо изменить, если вы перемещаете свое приложение и можете быть сохранены в том же файле конфигурации.

+0

Как сохранить базовый URL-адрес сайта в файле конфигурации? Это похоже на то, что мне нужно, я просто не знаю, как это сделать. – IronSummitMedia

0

Вы можете установить base url в HTML-заголовке.

+0

Это то, что я хочу. Проблема в том, что это не работает в локальной среде разработки, где URL-адрес похож на http: //localhost/sites/sitename/foo/page.php – IronSummitMedia

+0

Не '' работают? – ilnar

+0

Я бы предположил, но мне пришлось бы менять его каждый раз, когда я публиковал сайт. Это то, чего я пытаюсь избежать. В противном случае я бы просто использовал прямые пути везде. – IronSummitMedia

Смежные вопросы