如果在第一个目录中找不到请求的文件,我的目标是让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]
答案 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
祝你好运