#php #header #include #footer
#php #заголовок #включить #нижний колонтитул
Вопрос:
Я пытаюсь создать общий верхний и нижний колонтитулы для всего моего веб-сайта. Но мои веб-страницы организованы в разные папки. Как я должен определить свои ссылки внутри файла PHP, чтобы я мог включать их во все страницы.Ниже, в части моего menu.php файл.
Code:Root
<li>
<a href="company.html" <?php echo $active[2] ?>>COMPANY</a>
<ul>
<li><a href="team.html"><strong>Our</strong> Team</a></li>
<li><a href="index.html#clienteles"><strong>Our</strong> Clientele</a></li>
<li><a href="company.html#testimonials">Testimonials</a></li>
<li><a href="others/profile.html"><strong>Our</strong> Profile</a></li>
</ul>
</li>
Code: Child
<li>
<a href="../company.html" <?php echo $active[2] ?>>COMPANY</a>
<ul>
<li><a href="../team.html"><strong>Our</strong> Team</a></li>
<li><a href="../index.html#clienteles"><strong>Our</strong> Clientele</a></li>
<li><a href="../company.html#testimonials">Testimonials</a></li>
<li><a href="../others/profile.html"><strong>Our</strong> Profile</a></li>
</ul>
</li>
Я не хочу использовать абсолютный путь, потому что я тестирую сайт на локальном сервере apache на моем Mac.
Ответ №1:
Вы должны использовать абсолютный путь. Просто создайте BASE_URL
константу для вашего проекта и укажите ее на свой базовый URL. После этого просто добавьте его к своим URL-адресам
<li><a href="<?php echo BASE_URL?>/team.html"><strong>Our</strong> Team</a></li>
...
...
...
<li><a href="<?php echo BASE_URL?>/path/team.html"><strong>Our</strong> Team</a></li>
Ответ №2:
Я бы включил файл, возможно config.php и внутри имеют абсолютный путь. Таким образом, даже если вы тестируете свой сайт локально, вам просто нужно изменить эту константу и использовать ее в любой ссылке, которую вы хотите.
Ответ №3:
Если эти страницы находятся в корневом каталоге документа, вы можете добавить к ним косую черту:
<li><a href="/team.html"><strong>Our</strong> Team</a></li>
Как и в Unix /, предоставит путь к корню, будь то http://localhost/team.html
или http://example.com/team.html
.
Ответ №4:
Я бы использовал использовать <base>
тег. Как только это будет включено, вы сможете использовать относительные ссылки, и браузеры будут искать в нужном месте.
Если вы действительно не хотите переключать URL-адрес <base>
туда и обратно для разных доменов, вы могли бы попробовать настроить его динамически с помощью $_SERVER['HTTP_HOST']
.
Ответ №5:
Я думаю, что лучшим решением является наличие объекта, который будет отображать макет и любую страницу, которую вы хотите отобразить в данный момент.
Ваш макет будет выглядеть следующим образом:
mylayout.phtml
<html>
<head><?php $title ?></head>
<body>
<div id="header"
</div>
<?php include($_GET['webpage']) ?>
<div id="footer">
</div>
</body>
</html>
Тогда вы будете постоянно вызывать только одну и ту же страницу
http://www.mywebsite.com/index.php?webpage=team
Затем вы создаете .htaccess с mod rewrite, чтобы изменить ваши URL-адреса на
http://www.mysite/team/
Кажется, что просто вывести страницу на экран несколько сложно, но, потратив некоторое время на разработку структуры и стандартного способа вызова всех ваших страниц, вы получите больший контроль над своим шаблоном, сэкономите время на кодировании и будете иметь верхний и нижний колонтитулы на каждой странице.