您可以使用 从每个站点内访问根目录。对于仅测试,如果您以正确的方式进行,则可以回显路径以确保其正常工作。您永远不想显示包含和要求等内容的本地服务器路径。$_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/';
要访问的实际代码包括来自 site2 内部的 site1,您会说:
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不存在于其他域中,否则它可能会被标记为重复的网站。话虽如此,您可能还想为机器人添加一行.txt
文件,仅用于site1:
User-agent: *
Disallow: /blog/
其他可能性:
查找您的 IP 地址并包含以下代码段:
function is_dev(){
//use the external IP from Google.
//If you're hosting locally it's 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'];
}
请记住,如果您的ISP更改了您的IP,例如您有DCHP动态IP,则需要更改该文件中的IP才能看到结果。我会将该文件放在包含中,然后要求它在页面上进行调试。
如果您可以使用现代方法,例如使用浏览器控制台日志,则可以执行此操作并在浏览器的调试界面中查看它:
if(is_dev()){
echo "<script>".PHP_EOL;
echo "console.log('".$_SERVER['DOCUMENT_ROOT']."');".PHP_EOL;
echo "</script>".PHP_EOL;
}