Ответ 1
Вы можете добраться до корня из каждого сайта, используя $_SERVER['DOCUMENT_ROOT']
. Для ТОЛЬКО ТОЛЬКО для тестирования вы можете отследить путь, чтобы убедиться, что он работает, если вы сделаете это правильно. Вы НИКОГДА не хотите показывать пути локального сервера для таких вещей, как включает и требует.
Сайт 1
echo $_SERVER['DOCUMENT_ROOT']; //should be '/main_web_folder/';
Включает в себя сайт:
echo $_SERVER['DOCUMENT_ROOT'].'/includes/'; // should be '/main_web_folder/includes/';
Сайт 2
echo $_SERVER['DOCUMENT_ROOT']; //should be '/main_web_folder/blog/';
Фактический код для доступа включает в себя с сайта1 внутри сайта2, вы бы сказали:
include($_SERVER['DOCUMENT_ROOT'].'/../includes/file_from_site_1.php');
Он будет использовать только относительный путь файла, выполняющего запрос, если вы попытаетесь получить к нему доступ, исключив document root
и root
косую черту:
//(not as fool-proof or non-platform specific)
include('../includes/file_from_site_1.php');
Входящие пути не имеют места в коде на передней панели (в прямом эфире) сайта в любом месте и должны быть защищены и использоваться только в производственных средах.
Кроме того, для URL-адресов на самом сайте вы можете сделать их относительно домена. Браузеры автоматически заполнят остальные, потому что они знают, на какой странице они смотрят. Поэтому вместо:
<a href='http://www.__domain__name__here__.com/contact/'>Contact</a>
Вы должны использовать:
<a href='/contact/'>Contact</a>
Для хорошего SEO вы захотите убедиться, что URL-адреса для блога не существуют в другом домене, иначе он может быть помечен как дублирующийся сайт. С учетом сказанного вы также можете добавить строку в файл robots.txt
для ТОЛЬКО site1:
User-agent: *
Disallow: /blog/
Другие возможности:
Найдите свой IP-адрес и включите этот фрагмент кода:
function is_dev(){
//use the external IP from Google.
//If you're hosting locally it 127.0.01 unless you've changed it.
$ip_address='xxx.xxx.xxx.xxx';
if ($_SERVER['REMOTE_ADDR']==$ip_address){
return true;
} else {
return false;
}
}
if(is_dev()){
echo $_SERVER['DOCUMENT_ROOT'];
}
Помните, если ваш интернет-провайдер меняет ваш IP-адрес, так как у вас есть динамический IP-адрес DCHP, вам нужно будет изменить IP-адрес в этом файле, чтобы увидеть результаты. Я бы поставил этот файл в include, а затем потребовал его на страницах для отладки.
Если вы в курсе современных методов, таких как использование журнала консоли браузера, вы можете сделать это и просмотреть его в интерфейсе отладки браузера:
if(is_dev()){
echo "<script>".PHP_EOL;
echo "console.log('".$_SERVER['DOCUMENT_ROOT']."');".PHP_EOL;
echo "</script>".PHP_EOL;
}