.htaccess:在URL中包含一个子目录(仅适用于某些文件)

时间:2019-08-01 06:20:30

标签: regex apache .htaccess mod-rewrite

我正在尝试写一个看似简单的RewriteCond,但是,我一直在努力寻找解决方案。除了here和这个here之外,我还搜索了文档(this similar querysimilar query),但无法解决问题。

文件夹结构

/config
/public
  /js
  /css
  index.php
/src
  /controllers
    /ajax
  /models
  /views

AIM

如果URL太www.example.com或任何.js,.css,.jng文件,则在URL中包含“ public”。

wwww.example.com -> www.example.com/public/index.php
www.example.com/js/main.js -> www.example.com/public/js/main.js

但是,我希望编写一个RewriteCond来排除任何其他URL请求。

wwww.example.com/src/controllers/ajax/doSomething.php -> NO CHANGE

1 个答案:

答案 0 :(得分:2)

尝试一下:

RewriteRule ^$ /public/index.php [L,R]

RewriteCond %{REQUEST_URI}  \.js$ [OR]
RewriteCond %{REQUEST_URI}  \.css$ [OR]
RewriteCond %{REQUEST_URI}  \.jng$ 
RewriteCond %{REQUEST_URI}  !^/public
RewriteRule ^ /public%{REQUEST_URI} [L,R]