Я создаю сайт, который должен быть отредактирован на локальный сервер а затем загрузил позже удаленный сервер. Я использую абсолютный путь на локальном сервере, но затем, когда я загружаю его на удаленный сервер, ссылки больше не работают. Кажется, я могу использовать только относительный или абсолютный, а не оба.
Я хочу, чтобы скрипт работал как на локальном, так и на удаленном сервере. Очевидно, что Local предназначен для редактирования (иногда у меня было медленное интернет-соединение, поэтому мне приходилось использовать localhost). И Remote для производственных целей и предварительного просмотра клиента.
Ниже приведена функция, которую я создал:
PHP SCRIPT:
define("LOCALHOST", "/adamsProject");
define("REMOTE_SERVER", "http://adamsproject.ph");
function host(){
if(!LOCALHOST){
echo REMOTE_SERVER;
}else{
echo LOCALHOST;
}
}
ИСПОЛНЕНИЕ ПО HTML:
<ul>
<a href="index.php"><img src=" <?php echo host(); ?> /images/logoMain.png" id="logoMain" > </a>
<li><a href=" <?php echo host(); ?> /index.php"> HOME </a></li><li>
<a href="#" id="servicesWide"> SERVICES <i class="fa fa-chevron-down"></i></a></li><li>
<a href=" <?php echo host(); ?> /underConstruction.php"> ABOUT US </a></li><li>
<a href=" <?php echo host(); ?> /pages/contactUs.php"> CONTACT US </a></li><li>
<a href="#" id="folioWide"> PORTFOLIO <i class="fa fa-chevron-down"></i> </a></li>
</ul>
Как сказал DeDee, вы, вероятно, хотите удалить эхо в ссылке, а также пробелы сразу после ‘host (); ?> ‘Смотрите код ниже. Кроме того, нет необходимости в функции PHP; Вы можете использовать «$ _SERVER [‘SERVER_NAME’]», которая захватывает текущее имя веб-сервера. Надеюсь, это поможет.
if(!$_SERVER['SERVER_NAME']='localhost'){
$domain = '/adamsProject';
} else {
$domain = 'http://www.adamsproject.ph';
}
?>
<ul>
<a href="<?php echo $domain;?>/index.php"><img src="<?php echo $domain;?>/images/logoMain.png" id="logoMain" > </a>
<li><a href="<?php echo $domain;?>/index.php"> HOME </a></li><li>
<a href="#" id="servicesWide"> SERVICES <i class="fa fa-chevron-down"></i></a></li><li>
<a href="<?php echo $domain;?>/underConstruction.php"> ABOUT US </a></li><li>
<a href="<?php echo $domain;?>/pages/contactUs.php"> CONTACT US </a></li><li>
<a href="#" id="folioWide"> PORTFOLIO <i class="fa fa-chevron-down"></i></a></li>
</ul>
РЕДАКТИРОВАТЬ
Согласно вашим комментариям, если у вас есть подкаталог вне вашего localhost, то вам может потребоваться оператор if, чтобы добавить каталог adamsProject в ваш домен, когда вы находитесь на локальном хосте. Попробуй это. Дай мне знать.
EDIT2
Заменен домен удаленного сервера вашим жестко закодированным доменом. Также добавлено $domain
на ваш index.php по домашней ссылке img и HOME nav link.
альтернативно просто используйте относительные URL … так что
<a href="/underConstruction.php"> ABOUT US </a>
Будет работать одинаково на удаленных и локальных. Рендеринг страницы производит:
Http: //localhost/underConstruction.php
для меня на местном.
Попробуйте использовать $ _ SERVER [‘SERVER_NAME’] вместо своей функции. Он будет работать как для локального сервера, так и для удаленного. Ваш код должен выглядеть следующим образом.
<ul>
<a href="index.php"><img src="<?php echo 'http://' . $_SERVER['SERVER_NAME'];?>/images/logoMain.png" id="logoMain" > </a>
<li><a href="<?php echo 'http://' . $_SERVER['SERVER_NAME'];?>/index.php"> HOME </a></li><li>
<a href="#" id="servicesWide"> SERVICES <i class="fa fa-chevron-down"></i></a></li><li>
<a href="<?php echo 'http://' . $_SERVER['SERVER_NAME'];?>/underConstruction.php"> ABOUT US </a></li><li>
<a href="<?php echo 'http://' . $_SERVER['SERVER_NAME'];?>/pages/contactUs.php"> CONTACT US </a></li><li>
<a href="#" id="folioWide"> PORTFOLIO <i class="fa fa-chevron-down"></i> </a></li></ul>
Он вернется http://localhost/something
или же http://yourwebsite.pl/something
Вы должны добавить http://
Перед использованием <?php echo $_SERVER['SERVER_NAME'];?>
, Если вы этого не сделаете, он все равно будет относительным путём и удвоит имя вашего сервера. В этом случае это рассматривается как абсолютные пути. Вот пример, чтобы понять это проще:
Relative path:
<a href="index.php"><img src="/images/logoMain.png" id="logoMain" > </a>
Still relative path(server name doubled)
<a href="<?php echo $_SERVER['SERVER_NAME'];?>/index.php"> HOME </a>
Absolute path (correct one):
<a href="<?php echo 'http://' . $_SERVER['SERVER_NAME'];?>/underConstruction.php"> ABOUT US </a>
* Помните, что <?php echo $_SERVER['SERVER_NAME'];?>
вернуть имя сервера без /
в конце.