在 XAMPP 中更改 Apache 文档根目录

change Apache document root in XAMPP

我刚刚从主机下载了一个包含静态 html 页面的网站到我的本地主机 (XAMPP),并将其保存到 XAMPP htdocs 目录的子目录中。

当我在浏览器中查看本地网站时,所有 css、js 文件和图像都丢失了。我检查了 HTML 源代码,发现它都使用 css/js 或 href link 的相对路径。例如:

<a href="/contact">Text Link</a>

它适用于主机,但在我的本地主机上,它指向 http://localhost/contact instead of http://localhost/bf/contact(我的子目录名称是 bf)。此结构适用于所有 css,js 文件也无法加载。

我尝试将 .htaccess 文件添加到我的子目录中:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !bf/
RewriteRule (.*) /bf/ [L]

但是还是不行。我不想手动更改每个 HTML 页面中的所有 src、href 和 link 来解决这个问题。有一种方法可以让 Apache 识别根是 /bf 而不是 / ,仅应用于此目录中的所有文件。请帮忙!

非常感谢!

您可以通过在本地设置 apache 虚拟主机来完成这项工作,如下所述:

例如在ubuntu /etc/apache2/httpd.conf中, 如果您在 window 上使用 XAMPP 就是这种情况,那么 httpd.conf 文件应该是 C:\xampp\apache\conf\httpd.conf.

请按照以下步骤在本地服务器上配置您的本地站点:

------------
Step 1
------------
i.e 
<VirtualHost *:80>
  ServerName test.demo.tst ( Any name you want to set )
  DocumentRoot "C:/xampp/htdocs/bf"
   <Directory "C:/xampp/htdocs/bf">
      AllowOverride All  
      Order allow,deny  
      Allow from all
   </Directory>
  #RackEnv development
  ErrorLog C:/xampp/htdocs/bf/logs/test.demo.tst_error
  CustomLog C:/xampp/htdocs/bf/logs/test.demo.tst_access common
</VirtualHost>

------------
Step 2
------------
Than you need to restart apache service

------------
Step 3
------------
Than you need to do setting in your hosts files
for example in hosts file place below entry 

127.0.0.1       test.demo.tst

------------
Step 4
------------
Than you can access this url test.demo.tst local server.

I hope this informations would be helpful to you.

请试试这个..

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !bf/
RewriteRule ^(.*)$ /bf/ [QSA,L]

希望对您有所帮助。你的 apache 重写模式必须在 php.ini