我一直在到处寻找这个问题的答案,我似乎找不到任何简单的解决方案。我不明白为什么这么简单的事情会这么复杂。
所以基本上 - 我想做的是在我的 apache 上映射一些本地站点,每个站点都有自己的 css/js 等。然后在我的 apache conf 中我设置了一些别名:
# site 1
Alias /site1 "C:/www/site1"
<Directory "C:/www/site1">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
# site 2
Alias /site1 "C:/www/site2"
<Directory "C:/www/site2">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
现在,当我转到 url:http://localhost/site1/
时,将提供 site1 的内容 - index.html 正在加载。一切都好。在我的文件中,我使用绝对路径从文件夹链接 css 和 js - 例如/css/styles.css
和/js/scripts.js
.
当通过 apache 提供这些文件时,它们将获得以下路径:
http://localhost/css/styles.css
(忽略'site1'),原因当然是因为我要求通过指定绝对路径从我的webroot'localhost'开始。
为什么是绝对路径?我需要能够将我的 .html 文件更深入地移动到我的网站的文件夹结构中——这意味着相对于它们的位置——他们无法知道资源文件在哪里——除非我可以告诉他们从某个点开始——网络根。
所以问题是:
没有任何简单的方法可以告诉我的 Alias 设置,任何被要求的文件 - 使用绝对路径,都应该http://localhost/sitex/*
以http://localhost/*
. 换言之,基本路径被改变。
我尝试过 AliasMatch、DirectoryMatch、RewriteRules RewriteBase,但似乎都无法改变这一点。
也许我应该使用 Alias 以外的东西?