HOWTO:将图像、css 和 js 的请求重写到每个应用程序的不同文件夹中?

pic*_*rdo 5 apache mod-rewrite codeigniter

我正在尝试构建一个多应用程序 CodeIgniter 站点,其中所有应用程序的资源将存储在一个名为 \xe2\x80\x9cassets 的文件夹中。\xe2\x80\x9d 在这个文件夹中,每个应用程序都有自己的资产文件夹。那么,如果这是我的根目录\xe2\x80\xa6

\n\n
\n user_guide\n apps_folder(这是我所有应用程序文件夹所在的位置)\n 系统\n 资产\n\n
\n\n

...资产文件夹将这样组织:

\n\n
\nassets\n myapp1\n js\n img\n css\n 媒体\n\n
\n\n

这是我的挑战。我正在尝试编写一个 apache 指令,该指令会将所有以 css、js、png 和 gif 结尾的文件请求重写到该应用程序的相应资产目录中。但用户无法知道这些资产在服务器中的确切位置。给你举个例子:

\n\n

这是请求:www.myapp1.com/js/jquery.js

\n\n

文件位于:assets/myapp1/js

\n\n

该指令将检查\na) 域地址\nb) 文件扩展名

\n\n

...并基于这些变量,将重写 url,从而隐藏资产的真实位置,并使引用资产成为可能,就好像它们都位于网站的根目录一样。有人做过这样的事吗?

\n\n

谢谢,

\n

the*_*jxc 5

这是完全有可能的。请参阅 Apache 重写指南:

http://httpd.apache.org/docs/1.3/misc/rewriteguide.html

你的规则看起来像这样:

RewriteCond   %{HTTP_HOST}  \.myapp1\.com$
RewriteRule  ^/js/(.*)\.js$ assets/myapp1/js/$1
Run Code Online (Sandbox Code Playgroud)

玩得开心!