前曾在Typecho开发群中与王轶讨论了关于Nginx支持.htaccess文件的问题。王轶认为,Nginx能够支持.htaccess规则,且兼容Apache规则。我认为,Nginx支持使用.htaccess文件来存储Nginx的伪静态规则,不兼容.htaccess规则。

我之所以这么说,是有原因的,我查阅了Nginx的官方文档文档1/文档2,文档1是Nginx的Rewrite模块的doc,详细的解释了nginx的rewrite规则组成,在其中,我没有找到关于Apache的规则,在文档2中,文档说明了为什么不使用.htaccess文件 并将Nginx和Apache进行比较。众所周知,Nginx不支持.htaccess规则,开源中国的站长红薯曾发过一篇文章:谁说nginx不支持.htaccess,在我看来,红薯是在混淆视听,偷换了概念,我们说的是.htaccess规则,而红薯说的是.htaccess文件。

说了那么多废话。接下来我分析一下nginx为什么不支持.htaccess,主要有以下几个方面。

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

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

3. 北方毛熊的自尊心作祟:Apache后面有美帝的身影,毛熊们觉得要是兼容了就有点低声下气。所以搞出自己的版本。

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

1. 安全性较低。

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

2. 操作不便。

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

总结:实际上nginx不仅仅支持.htaccess文件,你甚至可以使用.mp3来放伪静态规则。但是,为了安全起见,我建议你使用默认的conf文件来保存rewrite规则。毕竟,说不定那天手贱就把目录清空了,规则就没了。Nginx也因此崩溃

转自:http://www.williamlong.info/archives/3806.html

nginx php htaccess,Nginx为什么不支持.htaccess文件相关推荐

  1. Linux下nginx支持.htaccess文件实现伪静态的方法!

    在Google上搜索的资料很多人都说nginx目前不支持.htaccess文件,我按照nginx的规则试验了一下,结果发现nginx是完全支持.htaccess文件的! 方法如下: 1. 在需要使用. ...

  2. nginx php htaccess,使Nginx服务器支持.htaccess的方法

    可能很多朋友都常用nginx不支持.htaccess,只有apache才支持.htaccess文件,其实这是错误的看法nginx也是支持.hatccess的哦,下面我来给各位总结一下配置方法. 其实n ...

  3. linux nginx htaccess,nginx支持.htaccess文件实现rewrite伪静态

    在网上查到的资料很多人都说nginx目前不支持.htaccess文件来做伪静态,小子也觉得不应该,作为世界上轻量级最好用的WEB服务器,Nginx应该可以的,谷歌了一下,找到了nginx完全可以支持. ...

  4. linux空间支持伪静态,[转载]Linux下nginx支持.htaccess文件实现伪静态的方法

    方法如下: 1. 在需要使用.htaccess文件的目录下新建一个.htaccess文件, 如本人的一个Discuz论坛目录: vim /var/www/html/168pc/bbs/.htacces ...

  5. nginx php .htaccess,Linux下nginx支持.htaccess文件实现伪静态的方法

    方法如下: 1. 在需要使用.htaccess文件的目录下新建一个.htaccess文件, 如本人的一个Discuz论坛目录: vim /var/www/html/168pc/bbs/.htacces ...

  6. 如何让apache支持.htaccess 解决Internal Server Error The server …错误

    如何让apache支持.htaccess 解决Internal Server Error The server -错误 文章来源:小灰博客| 时间:2013-12-25 12:17:08| 作者:Le ...

  7. PHP如何让apache支持.htaccess 解决Internal Server Error The server …错误

    TP框架  打开 www.newtp.com/index.php/Home/Index/abc出现 如下错误: Internal Server Error The server encountered ...

  8. nginx安装、nginx前端配置、后端配置、前后端分离配置、https支持(ssl配置)、负载均衡配置、nginx location详解

    nginx配置 一.nginx安装 二.nginx配置 仅前端配置 仅后端配置 前后分离配置(1) 前后分离配置(2) 前后不分离配置 https/ssl配置 负载均衡配置 数据压缩配置 三.完整ng ...

  9. 如何让apache支持.htaccess 解决Internal Server Error The server …错误

     今天朋友发来一套叫"PHP爱家房产网源码v5.01_destoon内核%4017558.net"的程序,让修改点东西,我在本地环境打开测试,导入数据库后打开发现报错,应该是服 ...

最新文章

  1. enote笔记语言(2)(ver0.3)
  2. Android自动化测试框架
  3. mysql创建数据库选择_mysql创建、选择并使用数据库
  4. Vue添加新的响应式属性
  5. 洛谷P4206 聪聪与可可
  6. java继承的关键字_超级关键字在Java继承中的作用
  7. vs2010编译生成后清除obj目录
  8. 【SpringBoot集成ElasticSearch 02】Java HTTP Rest client for ElasticSearch Jest 客户端集成(配置+增删改查测试源码)【推荐使用】
  9. 【教程】利用OBS+腾讯会议进行线上考试
  10. java如何配置maven路径_如何配置Eclipse构建路径以使用Maven依赖项?
  11. maven更换阿里云源
  12. Python输入输出详解
  13. [视频教程] C语言全套视频教程(已更新完毕
  14. HTTP代理如何使用
  15. 企业网站排名,关键词选择原则,6个基本策略
  16. Android 强制指定录音声卡
  17. 【git】No supported authentication methods available(server sent:pubickey)
  18. UML——员工请假状态转换图
  19. 西湖,一首荡漾千年的华章
  20. 联想文件服务器推荐配置,联想DS系列存储配置文档(非IBM DS系列)

热门文章

  1. tp5配置前后端模板路径的方法
  2. 乔布斯语录:领袖和跟风者的区别在于创新
  3. 盒子flex浮动布局并且换行后左对齐
  4. 如何在Word中插入代码
  5. 佳能2545i打印机驱动安装问题
  6. freenode常用资料
  7. 爬虫 第三讲 数据解析
  8. F12 开发人员工具控制台错误消息
  9. JavaScript 替换字符串中的反斜杠
  10. Ubuntu 系统安装 数据恢复软件 ext4magic 通过RPM方式