Apache htaccess从一个目录或另一个目录加载文件

时间:2014-01-10 22:53:47

标签: apache mod-rewrite

如果在第一个目录中找不到请求的文件,我的目标是让Apache第二次重写URL。

现在我有以下Apache重写功能很好......

RewriteRule ^[^/]*/scripts(.+) scripts$1

这使得所有域的所有JavaScript文件请求都访问以下目录中的文件...

  

WWW /脚本/


我的目录/文件结构......

  

WWW /

     

WWW /脚本/

     

WWW / www.example.com /

     

WWW / www.example.com /脚本/

我需要做的是 IF 所请求的文件不在此目录中...

  

WWW / www.example.com /脚本/

...然后让Apache看看这个目录...

  

WWW /脚本/


这适用于 localhost 本地开发,因此请求网址看起来像......

  

http:// localhost / www.example.com / scripts / index.js


这是我一直在修补的一个例子......

RewriteCond %{REQUEST_FILENAME} (.*)\/scripts\/\.(js)$
RewriteCond ^[^/]*scripts$2 -f
RewriteRule ^[^/]*/scripts(.+) scripts$2[L]

1 个答案:

答案 0 :(得分:1)

希望能让您更接近解决方案。这是我未经考验的想法:

# check if we're looking for a script in that directory
RewriteCond %{REQUEST_FILENAME} www\/www\.example\.com\/scripts\/(.*)\.js$

# check if that file DOESN'T exist
RewriteCond www\/www\.example\.com\/scripts\/%1\.js !-f

# it doesn't exist - so try to rewrite that file to www/scripts
RewriteRule www\/www\.example\.com\/scripts\/(.+)\.js$ www/scripts/$1.js
祝你好运