.htaccess 特定文件类型

Posted

技术标签:

【中文标题】.htaccess 特定文件类型【英文标题】:.htaccess on specific filetypes 【发布时间】:2010-08-14 10:51:40 【问题描述】:

我的 htaccess 中有一些神奇的东西。效果很好,就是不知道怎么样

RewriteRule ^[^_+/]. index.php

我认为它说无论访问者要求哪个目录,所有请求都应该通过 index.php。到现在为止还挺好。然而,图像、css 文件、js 文件等当然不应该在 index.php 中进行解析。我可以从上述规则中排除某些目录吗?像 /img、/css 和 /js

其他建议?

提前致谢

【问题讨论】:

【参考方案1】:

您可以排除现有文件和目录

RewriteCond  %REQUEST_FILENAME !-f
RewriteCond  %REQUEST_FILENAME !-d

把它放在你的规则之前

【讨论】:

我想它会起作用的。但是,我会觉得全部拒绝会更安全,并且在特定路径上会有例外。在此期间我会使用你的解决方案【参考方案2】:

您可以使用简单的 RewriteCond 来避免对某些路径的请求...

RewriteCond $REQUEST_URI !^css
RewriteCond %REQUEST_URI !^img
RewriteCond %REQUEST_URI !^js
# or alternatively just
RewriteCond $REQUEST_URI !^(css|img|js)

【讨论】:

谢谢你!奇迹般有效。不过,我必须在目录名称之前添加一个斜杠。

以上是关于.htaccess 特定文件类型的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式匹配 .htaccess 中的一系列文件类型

apache .htaccess 分布式配置文件 解读

如果url不包含特定字符,则htaccess重定向

htaccess 对特定文件夹暂时不可用

拒绝访问 .htaccess 中的一个特定文件夹

使特定 URL 使用模板文件并使用 PHP 和 .htaccess 从数组中获取特定数据