【发布时间】:2013-05-23 00:08:34
【问题描述】:
我一直在到处寻找这个问题的答案,但我似乎找不到任何简单的解决方案。我不明白这么简单的事情为什么要这么复杂。
所以基本上 - 我想做的是在我的 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 以外的东西?
【问题讨论】:
标签: apache mod-rewrite static resources alias