我正在尝试构建一个多应用程序CodeIgniter站点,其中所有应用程序的资产将存储在名为“assets”的单个文件夹中。在此单个文件夹中,每个应用程序都有自己的资产文件夹。所以,如果这是我的根目录...
user_guide apps_folder (this is where all my application folders live) system assets
...资产文件夹将按此组织:
assets myapp1 js img css media
这是我的挑战。我正在尝试编写一个apache指令,该指令将所有以css,js,png和gif结尾的文件请求重写到该应用程序的相应资产目录中。但是用户无法知道服务器中这些资产的确切位置。举个例子:
以下是请求:www.myapp1.com/js/jquery.js
该文件位于:assets / myapp1 / js
指令将检查 a)域名地址 b)文件扩展名
...并且基于这些变量,将重写网址,从而隐藏资产的真实位置,并且可以引用资产,就好像它们都位于网站的根目录一样。有没有人做过这样的事情?
感谢,
答案 0 :(得分:3)
这是完全可能的。请参阅Apache重写指南:
http://httpd.apache.org/docs/1.3/misc/rewriteguide.html
您的规则将如下所示:
RewriteCond %{HTTP_HOST} \.myapp1\.com$
RewriteRule ^/js/(.*)\.js$ assets/myapp1/js/$1
玩得开心!
答案 1 :(得分:1)
您可以使用AliasMatch
<VirtualHost myapp1>
AliasMatch ^(.*\.)(js|css)$ /path/to/assets/myapp1$1$2
</VirtualHost>