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

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-10-25 08:56:07

nginx支持.htaccess文件实现伪静态的方法分享_nginx的相关文章

nginx支持.htaccess伪静态rewrite的方法

  1. 在需要使用.htaccess文件的目录下新建一个.htaccess文件 这个.htaccess文件一般discuz.dedecms等系统都自带 # .htaccess 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

ajaxFileUpload.js插件支持多文件上传的方法_javascript技巧

前提条件: ajaxFileUpload.js插件多文件上传 步骤: 1.修改源码,(源码只支持单个文件的上传): 复制代码 代码如下: //修改前代码------- //var oldElement = jQuery('#' + fileElementId); //var newElement = jQuery(oldElement).clone(); //jQuery(oldElement).attr('id', fileId); //jQuery(oldElement).before(ne

5种nginx负载均衡配置方法分享_nginx

一.轮询(默认)  每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除.  二.weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况.  例如:  复制代码 代码如下: upstream bakend {  server 192.168.0.14 weight=10;  server 192.168.0.15 weight=10;  } 三.ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,

apache开启伪静态的方法分享_Linux

环境:系统 WindowsApache 2.2 加载Rewrite模块: 在conf目录下httpd.conf中找到 复制代码 代码如下: LoadModule rewrite_module modules/mod_rewrite.so 这句,去掉前边的注释符号"#",或添加这句. 允许在任何目录中使用".htaccess"文件,将"AllowOverride"改成"All"(默认为"None"): 复制代

怎么让配置Apache支持.htaccess文件

打开httpd.conf文件用文本编辑器打开后,查找  代码如下 复制代码 Options FollowSymLinks AllowOverride None 改为: Options FollowSymLinks AllowOverride All 在httpd.conf文件里搜索 LoadModule rewrite_module modules/mod_rewrite.so,如果前面有#符号,就去掉.保存,然后重启Apache. 如果是在windows系统中创建.htaccess 是不能直接

Windows系统下Nginx服务器的基本安装和配置方法介绍_nginx

下载地址:http://nginx.org/download/nginx-1.2.4.zip 下载后直接解压到你的硬盘上,我的是d:\nginx 启动nginx cd d: cd nginx-1.2.4 start nginx 查看任务任务管理器里面会有nginx的进程 在浏览器输入http://127.0.0.1 此时会出现nginx的欢迎界面,说明启动nginx成功. Welcome to nginx! If you see this page, the nginx web server i

在Nginx服务器上屏蔽IP的一些基本配置方法分享_nginx

采集和防止采集是一个经久不息的话题,一方面都想搞别人的东西,另一方面不想自己的东西被别人搞走. 本文介绍如何利用nginx屏蔽ip来实现防止采集,当然也可以通过iptable来实现. 1.查找要屏蔽的ip awk '{print $1}' nginx.access.log |sort |uniq -c|sort -n nginx.access.log 为日志文件, 会到如下结果,前面是ip的访问次数,后面是ip,很明显我们需要把访问次数多的ip并且不是蜘蛛的ip屏蔽掉,本例当中我们屏蔽掉 165

iisreset 不支持此接口的多种解决方法分享_win服务器

症状:系统是windows 2003,iis一直都是正常的,现在在在命令提示符里使用iisreset命令重启IIS的时候出现"不支持此接口",问题处理办法. 解决办法: 可以尝试使用以下几个方法来解决问题. 方法一.重新注册 iisrstap.dll 文件 运行:regsvr32 iisrstap.dll iisrstap.dll 文件版本:6.0.3790.3959(srv03_sp2_rtm.070216-1710) 描述:IIS Restart API Proxy dll 版权:

android杂记:C++文件的添加log方法分享_Android

1.添加头文件 复制代码 代码如下: #include <utils/Log.h>   //或者  #include <cutils/Log.h>  这个时候可以使用ALOGE/ALOGI/ALOGW 等方法打印出log 不过有些地方不能这么使用,因为依赖libutils libctuils库在mk文件见添加如下依赖编译即可 复制代码 代码如下: #LOCAL_MODULE := ... ...   #base_intermediates := $(call local-inter