2011-10-23 69 views
0

首先,如果您阅读此内容,请提前感谢您的耐心等待, - 我在PHP方面很新,并且有一个问题,我将尝试解释/描述。

//set default path 
///var/www/vhosts/www.mydomain.com/httpdocs/ 
$url = 'http://mydomain.com/skins/coolblue/tmp'; 
$url2 = 'http://mydomain.com/skins/coolblue/tmp'; 
$doc = $_SERVER['DOCUMENT_ROOT']; 
$path = '/templates/'; 
$actual_url = $doc.'/skins/coolblue/tmp'.$path; 

(我有一个开发商本来建立自己的网站,并配置我的服务器,但现在他已经走了) 我的网站托管与Plesk控制面板在专用服务器上,所以当我叫GoDaddy的,并要求他们的价值为['DOCUMENT_ROOT'],他们给了我* /var/www/vhosts/www.mydomain.com/httpdocs/*

我的问题是,我使用动态URL如subdomain.mydomain.com(这已经配置和作品正确),这反过来决定内容,并且是输出来自使用上述$_SERVER['DOCUMENT_ROOT']的特定脚本,url始终是静态的www。++++格式的网址。我想要的网址是动态的。

有什么办法去解决这个问题,或者我可以改变$ DOC = $_SERVER['DOCUMENT_ROOT'];到脚本的实际URL和动态域名变量添加即http://$subdomain/domain.com?我尝试过几乎所有路线的变化,但都没有运气。你有什么建议吗?另外,$doc = $_SERVER['DOCUMENT_ROOT'];是必要的,还是开发人员的选择,而不是写出路径? - 再次

+0

这部分的问题没有意义:“如上所述,url始终是www。++++格式中的静态url”“DOCUMENT_ROOT”是物理文件路径,而不是URL。如果出于某种原因您不需要物理路径到文件,那么您可能根本不需要此代码。 –

回答

1

谢谢如果你使用.htaccess文件转发您的子域的子文件夹(这纯粹是主观臆测),并且具有文件系统路径实际上是在必要时,你可以在重定向设置环境变量充分利用,如:

RewriteCond %{HTTP_HOST} subdomain\.site\.tld$ [NC] 
RewriteRule ^(.*)$ /subfolder/$1 [L,E=APPEND_ROOT:subfolder/] 

然后简单的修改应该给你正确的路径:

$doc = $_SERVER['DOCUMENT_ROOT'] . $_ENV['REDIRECT_APPEND_ROOT']; 

$_SERVER['DOCUMENT_ROOT'];是必要的,如果你不希望有每个站点配置的全路径名(这是一种痛苦)。

如果您没有使用.htaccess来解析您的子域,并且您已经在Apache配置中设置了它们,则它应该指向每个子域的正确物理主页。

1

$_SERVER['DOCUMENT_ROOT']是路径,尝试使用'SERVER_NAME''REQUEST_URI'

'SERVER_NAME'

下当前运行脚本所在服务器主机的名称。如果脚本在虚拟主机上运行,​​则这将是为该虚拟主机定义的值。

'REQUEST_URI'

的这是为了访问该页面给定URI;比如'/index.html'。

相关问题