2017-07-30 50 views
0
开始

比方说,项目的结构是这样的:htaccess的重定向所有资产的网址,除了与特定字符串

/ 
/public/assets/css/<css files go here> 
/public/assets/js/<js files go here> 
/public/assets/img/<image files go here> 
/storage/assets/css/<css files go here> 
/storage/assets/js/<js files go here> 
/storage/assets/img/<image files go here> 
/resources/assets/css/<css files go here> 
/resources/assets/js/<js files go here> 
/resources/assets/img/<image files go here> 

我想所有的CSS和JS资产请求/public/重定向除了与resources或启动请求storage

例如这个请求:/assets/css/style.css已被重定向到:/public/assets/css/style.cc

但是,/storage/assets/css/style.cc有留就这样。

什么我想是这样的:

RewriteRule ^![storage|resources](.*\.css)$ /public/$1 [L,R=302] 
RewriteRule ^![storage|resources](.*\.js)$ /public/$1 [L,R=302] 

我知道我缺少的东西正则表达式。

有谁知道如何改正它?

预先感谢您

回答

1

你是在正确的轨道上,非常接近一个解决方案,但你必须申请你的病情里面RewriteCond

RewriteCond %{REQUEST_URI} !^/?(storage|resources|public) 
RewriteRule .*\.(css|js)$ /public/$0 [L,R=302] 

否则,您可以用单去班轮RewriteRule它使用负向前视来应用重定向规则:

RewriteRule ^(?!storage|resources|public).*\.(css|js)$ /public/$0 [L,R=302] 
+0

谢谢。它运作良好 – Mojtaba

相关问题