如何使本地服务器将子文件夹视为根文件夹?

How to make local server treats a subfolder as the root folder?

当我在本地服务器上开发自己的网站时,我将其文件放在一个子文件夹中。例如,本地 url 看起来像这样:

http://127.0.0.1/projects/myownwebsite/

我把它的文件上传到网络托管公司的服务器后,它们就变成了根文件夹。所以远程 url 看起来像这样:

http://www.myownwebsite.com/

问题是,我想在所有页面和文件的引用中使用绝对路径。例如:

<link rel="stylesheet" href="/css/style.css">
<script src="/js/main.js"></script>
<a href="/about-us/">About Us</a>
<img src="/images/logo.png" alt="My Website">

这些绝对路径在远程服务器上完美运行。但不是在我的本地服务器上,因为在我的本地服务器上,像 /about-us/ 这样的引用链接到 http://127.0.0.1/about-us/,找不到任何页面。

我也想让绝对路径在我的本地服务器上工作,这样我就可以更轻松地开发自己的网站。但是我不能简单地将所有文件放在本地服务器的根文件夹中,因为还有其他项目的文件和文件夹。

是否可以让本地服务器将子文件夹(在本例中为我自己网站的文件夹)作为根文件夹?

P.S。我用于本地服务器的软件是 EasyPHP.

您需要更改 VirtualHost 和 conf_files\httpd.conf file.

<VirtualHost 127.0.0.1>
DocumentRoot "${path}/data/localweb/public_html"
ServerName 127.0.0.1
<Directory "${path}/data/localweb/public_html">
    Options FollowSymLinks Indexes
    AllowOverride All
    Order deny,allow
    Allow from 127.0.0.1
    Deny from all
    Require all granted
</Directory>

在 windows 上:configuration->Apache. (opens httpd.conf)

DocumentRoot "D:/proot"
(...)
# DocumentRootDirectory 
<Directory "D:\proot">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
 </Directory>
 (...)
 NameVirtualHost 127.0.0.1
 <VirtualHost 127.0.0.1>
   DocumentRoot "D:/proot/"
   ServerName localhost
 </VirtualHost>`

替换D:/proot/ with your path.