codetc - 网站开发技术 首页 后端 服务器 查看内容

Nginx是否支持.htaccess伪静态规则

2016-7-30 17:38| 发布者: CODETC| 查看: 3600| 评论: 1

关于Nginx的伪静态问题,有人认为Nginx不支持.htaccess规则,也有人认为Nginx能够支持.htaccess规则,且兼容Apache规则。但我认为,Nginx支持使用.htaccess文件来存储Nginx的伪静态规则,却不兼容.htaccess规则。

说Nginx支持.htaccess规则的人基本上都是在说Nginx支持使用.htaccess文件来存储Nginx的伪静态规则,这其实是两个概念。众所周知,Apache支持.htaccess规则,而.htaccess 的优点在于支持 "不重启服务程序" 时, 修改即时生效。但这点Nginx在使用.htaccess时似乎做不到。

下面我们分析一下nginx为什么不支持.htaccess

1. 性能需要:Apache处理伪静态规则时会依次搜索各个目录下的.htaccess文件,这样就会造成大量的查询,影响性能,与Nginx的设计理念不符。

2. 软件模式决定:Apache设计时便是动态加载这一点,可以从Apache处理.htaccess文件看出来。你修改了.htaccess后,就可以马上生效,包括Apache加载模块也是动态加载,而Nginx则是写死的规则,修改后需要重载nginx才可以,Tengine虽然提供了动态加载模块,但仍需要重载设置才能生效,可以说是在”伪动态”。

关于.htaccess应用于Nginx的可行性分析。在我看来,.htaccess不可能应用于LNMP平台的商业化。主要有以下几个原因:

1. 安全性较低。

由于Nginx是先加载配置文件,然后才运行,所以,如果你用的虚拟主机有一个爱折腾的邻居,万一那个家伙手残了,改错了,你也会无法访问,随之遭殃。

2. 操作不便。

Nginx因为是先载入配置文件,所以,在每次修改完需要重启Nginx,你是否给用户ssh密码以方便其重启?如果不给密码使用php中的exec,又会有跨站的危险。如果开启了Chroot,exec就没有效果了。

总结:实际上nginx不仅仅支持.htaccess文件,你甚至可以使用.mp3来放伪静态规则。但是,为了安全起见,我建议你使用默认的conf文件来保存rewrite规则。毕竟,说不定那天手贱就把目录清空了,规则就没了,Nginx也因此崩溃。
文章来源 CODETC,欢迎分享,转载请注明地址: http://www.codetc.com/article-300-1.html
发表评论

最新评论

引用 Asiaidc.net  2017-3-6 19:19
但我认为,Nginx支持使用.htaccess文件来存储Nginx的伪静态规则,却不兼容.htaccess规则。
很有见地!

查看全部评论(1)

 作为游客发表评论,请输入您的昵称

返回顶部