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 并添加动态域变量 ie http://$subdomain/domain.com?我尝试了几乎所有路径的变体,但没有运气。你有什么建议吗?顺便说一句,这是$doc = $_SERVER['DOCUMENT_ROOT'];必要的,还是开发人员的选择而不是写出路径?- 再次感谢你

4

2 回答 2

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 配置中设置了它们,那么它应该已经指向每个子域的正确物理主目录。

于 2011-10-24T03:35:33.887 回答
1

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

'服务器名称'

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

或者

'REQUEST_URI'

为访问此页面而提供的 URI;例如,'/index.html'。

于 2011-12-02T22:03:31.417 回答