WAMP相对网址查找子文件夹,虚拟主机设置问题?

时间:2014-12-09 13:42:06

标签: apache wamp virtualhost relative-url

stackoverflow上的第一篇文章!

已经好几个小时了,无法理解。

Wamp安装到C:\ wamp,网站位于C:\ wamp \ www \ groovysite.net,并在我的浏览器中显示在localhost / groovysite.net。

有一个子文件夹groovysite.net/subfolder。问题是子文件夹中包含的页面中的所有相对URL都将子文件夹添加到根文件夹之后的url路径中。

例如,两个样式表存在于

C:/wamp/www/groovysite.net/stylesheets/app.css
C:/wamp/www/groovysite.net/style.css

在我的网站上是

<link rel="stylesheet" href="stylesheets/app.css" />
<link rel="stylesheet" href="style.css">

在hompepage groovysite.net/index.html上,url路径是

localhost/groovysite.net/stylesheets/app.css
localhost/groovysite.net/style.css

所以他们工作。但是在子文件夹/ p​​age.html上,路径是

localhost/groovysite.net/subfolder/stylesheets/app.css
localhost/groovysite.net/subfolder/style.css

所以WAMP似乎将子文件夹路径粘贴到相对URL上。

我读到设置虚拟主机会指示WAMP为每个虚拟主机找到正确的文档根目录,并将此问题排除在外。为此,这是我目前在apache 2.4.9上的配置:

主机文件:

127.0.0.1 localhost
::1  localhost

127.0.0.1 groovysite.net
::1  groovysite.net

httpd.conf虚拟主机行未注释

的httpd-vhosts.conf

<VirtualHost *:80>
    DocumentRoot "c:/wamp/www"
    ServerName localhost
    ServerAlias localhost
    ErrorLog "logs/localhost-error.log"
    CustomLog "logs/localhost-access.log" common
    <Directory  "c:/wamp/www">
        AllowOverride All
        Options Indexes FollowSymLinks
        Require local
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "c:\wamp\www\groovysite.net"
    ServerName groovysite.net
    ServerAlias www.groovysite.net
    ErrorLog "logs/groovysite.net-error.log"
    CustomLog "logs/groovysite.net-access.log" common
    <Directory  "c:/wamp/www/groovysite.net">
        AllowOverride All
        Options Indexes FollowSymLinks
        Require local
    </Directory>
</VirtualHost>

代码来自RiggsFolly的回答here

完全难倒......任何帮助都将不胜感激!

1 个答案:

答案 0 :(得分:1)

一些建议

这一行

DocumentRoot "c:\wamp\www\groovysite.net"

应该是

DocumentRoot "c:/wamp/www/groovysite.net"

它不是解决方案,但你应该使用unix分离器,而不是dos分离器。

最重要的是,您应该使用在虚拟主机定义中创建的域名运行网站,即

http://groovysite.net 
or 
http://www.groovysite.net` 

而不是

`http://localhost/groovysite.net`

这就是创建虚拟主机的重点!如果你不这样做,那么Apache就不会获取虚拟主机定义,也不会使用正确的DocumentRoot,因此链接的添加不正确。

另外this post is probably more complete,请在底部查看名为如何启用此其他“我的虚拟主机”菜单的部分?

另外请确保您没有遵循任何建议更改\wamp\www\index.php以将行修改为

的建议
$suppress_localhost = false;

如果您将其保留为

$suppress_localhost = true;

然后,定义了虚拟主机后,WAMPServer主页上的项目链接应正确启动虚拟主机,而不是将localhost添加到网址的前面。