regex - .htaccess :在 URL 中包含一个子目录(仅适用于某些文件)
问题描述
我正在尝试编写一个看似简单的RewriteCond
,但是,我一直在追逐我的尾巴试图找到解决方案。除了这个类似的查询和这个类似的查询之外,我已经搜索了文档(这里,这里),但无法解决这个问题。
文件夹结构
/config
/public
/js
/css
index.php
/src
/controllers
/ajax
/models
/views
目标
如果 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
解决方案
试试这个:
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]
推荐阅读
- ios - 如何在目标 c 中隐藏 AVPlayer 屏幕?
- deep-learning - 点网中输入和特征变换的区别?
- java - NoSuchBeanDefinitionException:没有名为“entityManagerFactory”的bean可用
- html - 为什么这个 Bootstrap 行覆盖的宽度大于屏幕宽度?
- angular - 离子形式验证最大长度不起作用
- c# - 一旦一个或多个文件在文件夹中包含无效字符,C#就会抛出异常错误
- android - java.lang.IllegalStateException: Activity 已被销毁(替换片段时)
- java - 时间和日期选择器的时间(以毫秒为单位)
- html - ng-repeat 从后端的 json 数组中获取值
- android - 尝试在空对象引用上调用虚拟方法“java.lang.String com.android.server.fingerprint.ClientMonitor.getOwnerString()”