配置 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 直接访问文件

如何使用 .htaccess 指向目录以加载索引

停止直接访问 (.htaccess) 并允许 ajax 请求到子文件夹

.htaccess 拒绝访问图像文件夹,但允许访问查看单个图像

如何使用 htaccess 拒绝对文件夹的直接访问

配置 Shiro 以允许匿名访问资源文件夹(JS、CSS 等)