【发布时间】:2013-05-06 22:41:41
【问题描述】:
在我的本地机器上,以下工作完美:
<VirtualHost *:80>
##ServerAdmin postmaster@dummy-host2.localhost
DocumentRoot "C:/xampp/htdocs/website_1"
ServerName testpage.com/website_1
##ServerAlias www.recruitement.localhost
##ErrorLog "logs/dummy-host2.localhost-error.log"
##CustomLog "logs/dummy-host2.localhost-access.log" combined
</VirtualHost>
但是我将我的网站托管给名为 justhost.com 的托管公司,他们不允许我修改 httpd-vhosts.conf 或 httpd.conf。现在我的整个网站都被编码了,因此 website_1 下的文件使用简单的斜杠“/”来引用 website_1 下的其他文件,这意味着 website_1 被视为文档根目录。这在本地机器上完美运行,但是当上传到主机时,它给了我服务器错误,因为找不到文件,因为它试图在 public_html
中找到这些文件例如:
public_html
- website_1
- script.php
- style.css
在我的 script.php 中:
<a href="/style.css">See My Style</a>
这在本地机器上运行良好,但在主机上却失败了,因为它试图在 public_html 下而不是 public_html/website_1
下找到 style.css有没有办法在不使用虚拟主机的情况下拥有多个文档根目录?就像使用 .htaccess 或其他东西一样。请我尽量避免重写代码,因为它大约有 10000 行代码。
【问题讨论】:
-
__DIR__怎么样或者你试过./吗? -
我不想使用 ./ 也不想使用需要重组数千行代码的 DIR
-
我完全看不出你的问题。您的 vhost 定义中没有任何东西是非常奇怪的,或者需要一堆
.htaccess规则。只需将 website_1 文件夹直接上传到您的主机上的 public_html,它应该可以正常工作。 -
但我无法使用 因为它会在 public_html 的根文件夹下查找 img_1
-
如果按照我的建议,将
website_1的内容直接上传到public_html,则图像会正常解析。在共享主机环境中,您必须接受一些预定义的通用事实,例如DocumentRoot固定在 DirectAdmin 服务器上的public_html文件夹中。
标签: php apache .htaccess vhosts