php – 从htaccess重写规则中排除文件

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 从htaccess重写规则中排除文件脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我在 PHP应用程序中有一个htaccess重写设置,用于通过bootstrapPEr文件路由文件.从本质上讲,目标是获取一个URL,例如www.domain.COM/view/key/value/key/value,其中视图将相应地路由,并且键/值对将通过我在引导程序中编写的函数可用对观点.一切都运作良好……

也就是说,直到我开始做ajax-y的东西.我通过单个文件ajaxDispatcher.PHP路由我的所有ajax查询.当我这样做时,htaccess(正确)捕获了请求并使用我的引导程序不适当地路由它.同样,它试图路由不需要的文件,如.ico,.css等.

我想出了文件扩展路由异常,但是,我无法让.htaccess忽略单个文件ajaxDispatcher.PHP的重写规则.这是我的代码所在的位置:

RewrITeEngine On
 RewriteBase /
 RewriteCond %{REQUEST_FILENamE} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 rewriterule ^/ajaxDispatcher.PHP$$0 [L]
 RewriteRule !\.(js|ico|gif|jpg|png|css)$index.PHP?route=$1 [L]

如何让.htaccess忽略仅针对ajaxDispatcher的路由规则?

解决方法

应该在RewriteCond块上移动新规则:

RewriteRule ^/?ajaxDispatcher.PHP$- [L]

否则,RewriteConditions不再包含RewriteRule扩展,我认为它们是有意的.

另一种选择是将其转换为另一个RewriteCond:

RewriteCond %{SCRIPT_NAME}  !ajaxDispatcher

或者将其作为断言注入最终的RewriteRule(?!ajaxDispatcher.PHP).

在Serverfault:https://serverfault.com/questions/214512/everything-you-ever-wanted-to-know-about-mod-rewrite-rules-but-were-afraid-to-as上最好地解释了订购事项

脚本宝典总结

以上是脚本宝典为你收集整理的php – 从htaccess重写规则中排除文件全部内容,希望文章能够帮你解决php – 从htaccess重写规则中排除文件所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。