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

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

方法如下:

1. 在需要使用.htaccess文件的目录下新建一个.htaccess文件,
如本人的一个Discuz论坛目录:

vim /var/www/html/168pc/bbs/.htaccess

2. 在里面输入规则,我这里输入Discuz的伪静态规则:

# nginx rewrite rule
rewrite ^(.*)/archiver/((fid|tid)-[w-]+.html)$ $1/archiver/index.php?$2 last;
rewrite ^(.*)/forum-([0-9]+)-([0-9]+).html$ $1/forumdisplay.php?fid=$2&page=$3 last;
rewrite ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/viewthread.php?tid=$2&extra=page%3D$4&page=$3 last;
rewrite ^(.*)/profile-(username|uid)-(.+).html$ $1/viewpro.php?$2=$3 last;
rewrite ^(.*)/space-(username|uid)-(.+).html$ $1/space.php?$2=$3 last;
rewrite ^(.*)/tag-(.+).html$ $1/tag.php?name=$2 last;
# end nginx rewrite rule

wq保存退出。

3. 修改nginx配置文件:

vim /etc/nginx/nginx.conf

4. 在需要添加伪静态的虚拟主机的server{}中引入.htaccess文件,如图所示:

include /var/www/html/168pc/bbs/.htaccess;(把这个改成你.htaccess文件的具体位置)

wq保存退出。

5. 重新加载nginx配置文件:

/etc/init.d/nginx reload

重新打开网页看看,如果伪静态正常就证明你的rewrite rule语法是正确的。

正常,完毕!

补充:偶在网上发现了个可以在线将Apache Rewrite伪静态规则自动转换为Nginx Rewrite网页。大家可以试试看。

http://www.anilcetin.com/convert-apache-htaccess-to-nginx/

此地址里面的内容包含可以完成上面说的略做修改的功能。就是把.htaccess中的规则自动转换成nginx下面可用的规则。

总结:.htaccess文件本来是apache专用的分布式配置文件,提供了针对每个目录改变配置的方法,即在一个特定的目录中放置一个包含指令的文件,其中的指令作用于此目录及其所有子目录。其实修改一下,nginx也可使用.htaccess文件实现多种功能。实现伪静态只是.htaccess的其中一个用途,.htaccess还可以做很多的用途,如过滤访问IP,设置web目录访问权限、密码等。

时间: 2024-08-06 03:41:17

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

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

在Google上搜索的资料很多人都说nginx目前不支持.htaccess文件,我按照nginx的规则试验了一下,结果发现nginx是完全支持.htaccess文件的! 方法如下: 1. 在需要使用.htaccess文件的目录下新建一个.htaccess文件,如本人的一个Discuz论坛目录: vim /var/www/html/168pc/bbs/.htaccess 2. 在里面输入规则,我这里输入Discuz的伪静态规则: # nginx rewrite rulerewrite ^(.*)/

nginx支持.htaccess文件实现伪静态的方法

方法如下: 1. 在需要使用.htaccess文件的目录下新建一个.htaccess文件, vim /var/www/html/.htaccess 2. 在里面输入规则,我这里输入Discuz的伪静态规则: # nginx rewrite rulerewrite /!.(js|gif|jpg|png|css)$ /index.php;# end nginx rewrite rule wq保存退出. 3. 修改nginx配置文件: vim /etc/nginx/nginx.conf 4. 在需要添

linux下nginx实现虚拟主机(3种方法:基于域名、基于端口、基于ip地址)

在3.17日的时候已经写过一篇关于apahce的基于域名.端口.ip地址3种方式的虚拟主机实现.原理是一样的,现在记录nginx的虚拟主机这三种方式的实现. 系统版本为rhel5.6,nginx版本为1.1.6. 1.基于域名: 基于域名的方式,要先有dns服务器,这里为了方便,可以在/etc/hosts文件里面配置,把它当成dns就行了,可以参考3.17日那篇博客关于dns的配置或者其他博文也有.这里关于nginx的安装也略去. [[email protected] ~]# cat /etc/

夺命雷公狗---linux NO:37 linux下nginx的URL重写或者伪静态页面

最终效果如下所示: 其实很简单,首先在  html   目录下创建一个test.php 的文件,如下所示: 然后使用vi打开他,写份测试源码,源码如下所示: 然后保存退出,去到   /usr/local/nginx/conf   找nginx.conf   配置文件,修改一下即可.. 在46行加入修改规则即可,说白了就玩正则表达式而已,$1 是nginx给我们预留的变量,直接使用即可 rewrite leigood-(\d+)\.html /test.php?id=$1; 修改完成后回到   s

Windows下自由创建.htaccess文件的N种方法

.htaccess是apache的访问控制文件,apache中httpd.conf的选项配合此文件,完美实现了目录.站点的访问控 制,当然最多的还是rewrite功能,即URL重写,PHP中实现伪静态的一个重要途径,也是被公认为SEO中搜索引擎友好的极为有效的一个手段.尽 管前些天的黑屏风波闹的沸沸扬扬,但依本人拙见,windows用户并无任何减少.现在的一个实际问题就是windows不允许重命名时.的前面没有字 符,它认为这样的文件名是不合法的.这就造成我们无法通过重命名”新建文本文档.txt

关于Nginx支持.htaccess的分析

http://www.40099.cc/funny/184.html 之前曾在Typecho开发群中与王轶讨论了关于Nginx支持.htaccess文件的问题.王轶认为,Nginx能够支持.htaccess规则,且兼容Apache规则.我认为,Nginx支持使用.htaccess文件来存储Nginx的伪静态规则,不兼容.htaccess规则. 我之所以这么说,是有原因的,我查阅了Nginx的官方文档文档1/文档2,文档1是Nginx的Rewrite模块的doc,详细的解释了nginx的rewri

Linux启动Apache支持.htaccess伪静态文件方法

第一.编辑httpd.conf文件 A - 在etc/httpd/conf/目录下的httpd.conf 文件,找到: LoadModule rewrite_module modules/mod_rewrite.so 如果前面有#就取消,如果没有就默认不要修改. B - 设置AllowOverride 同样的在httpd.conf 中找到下面的脚本 <Directory /> Options FollowSymLinks AllowOverride None </Directory>

linux下nginx,mysql,php(lnmp)编译安装

关闭SELINUX vi /etc/selinux/config #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加 :wq!  #保存退出 setenforce 0 #使配置立即生效 mysql 5.5.28安装 安装路径:/usr/local/mysql数据库路径:/usr/local/mysql/data/ mysql从5.5版本开始,不再使用./configure编译,而是使用cmake编译器,具

Linux下nginx编译安装教程和编译参数详解

这篇文章主要介绍了Linux下nginx编译安装教程和编译参数详解,需要的朋友可以参考下 一.必要软件准备1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码代码如下: # yum install pcre* //如过你已经装了,请跳过这一步 2.安装openssl 需要ssl的支持,如果不需要ssl支持,请跳过这一步 复制代码代码如下: # yum install openssl* 3.gzip 类库安装 复制代码代码如下: yum install zlib zlib-