使Nginx服务器支持.htaccess的方法
作者:goldensun 发布时间:2023-07-21 22:02:19
可能很多朋友都常用nginx不支持.htaccess,只有apache才支持.htaccess文件,其实这是错误的看法nginx也是支持.hatccess的哦,下面我来给各位总结一下配置方法。
其实nginx和.htaccess一点关系都没有,只是一大堆人深受apache的影响觉得nginx应该也要支持.htaccess功能。在nginx的配置中直接include .htaccess文件就好
include /站点目录/.htaccess;
多么简单,但是更让人哭笑不得的是有大部分人根本就不知道nginx与apache是两个不同webserver程序,于是不少人这么干:在nginx里include .htaccess文件后,把apache伪静态规则的.htaccess上传到站点根目录下...无语。其实nginx可以include任何文件,而不仅仅是.htaccess。
其实nginx这样引用.htaccess跟apache还是有区别的:
1、nginx是启动引入,因为nginx特别注重效率,所以启动的时候会把所有的配置文件读入内存,然后启动个。如果发现有语法错误,则启动失败。而apache则是动态引入,每次访问站点都会重新载入配置。
2、nginx中的include是手动添加,指定目录。apache已经把.htaccess作为它的一种特色机制,并且支持站所有子目录都可以有.htaccess文件。
根际实际开发经验,很多人在早期都是用虚拟空间的多,而早期的虚拟空间基本都是apache做webserver,所以用户不需要联系空间商就能自己做伪静态,而开源程序更是方便的拓展这一功能(ecshop,wordpress,phpcms等等)。并且维护也方便,只要覆盖.htaccess就好。
其实,没有几个站点经常去修改.htaccess,并且现在基本使用vps居多。
nginx 也可使用 .htaccess 文件实现多种功能。
在 nginx/nginx.conf的server{}中引入 .htaccess 文件:
include /vhosts/quany.info/.htaccess;
nginx完全可以支持.htaccess文件,请按如下操作:
1、新建一个.htaccess文件,在里面输入规则,如本站的规则:
# nginx rewrite rule
rewrite ^(.*?)/article/.*?-(d+)-(d+).html$ $1/show.html?id=$2&page=$3 break;
rewrite ^(.*?)/category/.*?-(d+)-(d+).html$ $1/list.html?id=$2&page=$3 break;
rewrite ^(.*?)/tag/([^/]+)/?$ $1/tag.html?w=$2 break;
rewrite ^(.*?)/tag/([^/]+)/(d+)$ $1/tag.html?w=$2&page=$3 break;
# end nginx rewrite rule
保存文件并上传到网站的根目录。
2、修改虚拟主机配置
# ee /usr/local/etc/nginx/nginx.conf
#freebsd 7.2默认nginx默认安装的配置文件
在你需要添加伪静态的虚拟机中的server块中引入.htaccess文件
include /usr/www/.htaccess
#请把这个改成你.htaccess文件的位置,
保存、退出重启nginx
# /usr/local/etc/rc.d/nginx restart
刷新看看,如果能正常器从证明你的rewrite rule的语法是正确
nginx的rewrite规则您可以直接放在主机配置中也可以放在独立的文件用includeinru,存为独立的文件时,保存到一个新的文件(文件名可以任意取,不过建议还是用.ht(注意有个“点”)开头的文件名,因为这个服务器里面默认过滤了外部对.ht开头的文件访问:
location ~ /.ht {
deny all;
}
猜你喜欢
- 题记:在很多相册的网站中,都有这样的功能:当图片分多页显示的情况下,点击图片会自动翻页到下一张图片,接下来我们在dedecms4中实现这个功
- 今天我们来讨论一下GoDaddy主机的安全信息问题独立服务器与共享托管账户相比,力量更为强大,也更为多样。你可以在你的服务器上运行及安装几乎
- CentOS下设置默认JDK最近在弄Linux,用yum源安装opnjdk-devel版本后,用命令ll /etc/altern
- 这是一场无声似有声的战争,一场没有硝烟的战争,相信很多个站都像我一样,期待两大Php Cms系统的发布。毕竟他们是很多个站的衣食父母,他们养
- 问题:常用命令“ll”失效或命令未找到原因:"ll"命令不是linux的基本命令,它是"ls -l"
- 关于人人网,我不想唠叨什么,因为自打她的前身-校内网的问世,就一直是互联网这个圈子里的焦点,围绕她的话题,一直不少,是圈子里人茶余饭后的谈资
- debian安装完之后发现sudo命令不能用找了半天发现是没有安装sudo得了,进入root安包,炸开他,apt-get install s
- SNMP(Simple Network Management Protocol,简单网络管理协议),用来对通信线路进行管理。在Windows
- 众所周知,在七八年前炒域名是一种赚钱的手段,在三四年前炒域名是一种时尚的潮流,然而现在炒域名似乎没多大意义,显得有些老土了,最重要的是好域名
- LAMP 方案是一系列自由和开源软件的集合,包含了 Linux、Web 服务器 (Apache)、 数据库服务器 (MySQL / Mari
- 在编程学习中,很多时候,我们希望将数据库和软件的运行进行分离,比如软件通过ip地址连接到数据库进行存储操作,但由于学习成本有限,我们通常的办
- 本文介绍的是关于Linux中别名与二进制使用的相关内容,分享出来给大家参考,下面来看看详细的介绍:二进制一般二进制这个名词听上去高深莫测,然
- twig是TheWebInformationGateway的缩写,是一套利用PHP开发而成的软件,它可以让你轻松地架设一个网络邮局(WebM
- Exchange Server2007 已经面市将近一年了,相信大家一定对它的强大功能已经有所体验了,其中值得我们关注的就是Exchange
- 有10年历史的网游“包月制”收费模式,突然被“包日制”撞了一下腰。昨日,国产网游企业金山软件每天2.5元的付费模式悄然上线。这是国内网游企业
- 在 beta3 的时候,我用 hd.img 制作了一张引导软盘,并且用 iso 文件来安装。这次,我准备变换一种方式,不用再制作软盘了。 上
- 作为企业的信息化安全人员,其主要任务就是如何在保障服务器性能的前提下提高服务器的安全性。而要做到这一点,服务器的访问权限控制策略无疑是其中的
- “在查看您的帐户时,我们注意到您目前在展示 Google 广告时所采用的方式不符合我们的政策。例如,我们发现在类似 URL的网页上有违反 A
- virtualenv是一个用来创建隔离的python虚拟环境的工具。它可以在一个独立的目录创建自己的python环境,使用virtualen
- 为了帮助您通过有限的空间获得更多的广告收益,我们在按点击付费的广告单元中添加了“下一页”和“上一页”按钮。当用户点击“下一页”按钮时,广告单