您可以使用. 仅用于测试,如果您以正确的方式进行操作,您可以回显路径以确保其正常工作。您永远不想显示包含和要求等内容的本地服务器路径。$_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 不存在于其他域中,否则它可能会被标记为重复站点。话虽如此,您可能还想在robots.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;
}