配置 htaccess 以直接访问 CSS 和 JS 文件,但将所有其他请求重定向到索引文件 [重复]
Posted
技术标签:
【中文标题】配置 htaccess 以直接访问 CSS 和 JS 文件,但将所有其他请求重定向到索引文件 [重复]【英文标题】:Configure htaccess to directly access CSS and JS files but redirect all the other requests to index file [duplicate] 【发布时间】:2015-07-01 05:10:15 【问题描述】:我目前正在开发一个系统,但我对我应该如何实现它感到非常困惑。这是我的简化文件结构
-.htaccess
--/public
--/public/index.php
--/project
--/project/template1/css
--/project/template2/js
--/project/all-other-files-and-folders-used
我的系统当前将所有请求重定向到 index.php,它将加载项目文件夹中的文件以进行所有其他工作但我希望 htaccess 识别项目文件夹中的所有 CSS、IMG 和 JS 文件并允许直接访问给他们。
这是我现在拥有的 .htaccess 文件
RewriteEngine on
RewriteRule ^((?!public/).*)$ public/$1 [NC,L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)$ index.php?cmd=$1 [PT,L]
这可能吗? 提前致谢
【问题讨论】:
这个条件:"RewriteCond %REQUEST_FILENAME !-f" 必须防止您重定向文件。 【参考方案1】:你可以使用:
RewriteEngine on
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^((?!(?:public|project)/).+)$ public/index.php?cmd=$1 [QSA,NC,L]
【讨论】:
您介意解释一下您的代码,以便我能更好地理解发生了什么吗?我已经实现了您的解决方案,但它只能部分阻止我的其他 php 文件被访问 其他 php 文件在哪里?此规则只会影响非文件和非目录 它们位于我上面的简化文件结构中指示的项目文件夹中。 也试试我更新的规则。 非常感谢,已经成功了以上是关于配置 htaccess 以直接访问 CSS 和 JS 文件,但将所有其他请求重定向到索引文件 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
停止直接访问 (.htaccess) 并允许 ajax 请求到子文件夹