在XAMPP

时间:2016-01-20 07:17:44

标签: apache .htaccess document-root

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

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

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

它适用于托管,但在我的localhost上,它指向http://localhost/contact而不是http://localhost/bf/contact(我的子目录名称是 bf )。此结构也适用于所有css,js文件,无法加载它们。

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

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

但它仍然不起作用。我不想手动更改每个HTML页面中的所有src,href和链接来修复此问题。有一种方法可以让Apache识别root是/ bf而不是/,只应用于此目录中的所有文件。请帮忙!

非常感谢!

2 个答案:

答案 0 :(得分:1)

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

例如在ubuntu /etc/apache2/httpd.conf中, 如果您在窗口上使用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.

答案 1 :(得分:0)

请试试这个......

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

希望这对你有所帮助。并且你的apache重写模式必须在php.ini中启用