前言:
Nginx 完全支持使用.htaccess 文件实现伪静态的方法。在 Google 上搜索的资料中,很多人都说 Nginx 目前不支持.htaccess 文件。然而,我按照 Nginx 的规则进行了实验,结果发现 Nginx 完全支持.htaccess 文件的使用。
方法如下:
1. 在需要使用.htaccess 文件的目录下新建一个.htaccess 文件,比如一个 Discuz 论坛目录:代码如下:vim /var/www/html/xxx.com/bbs/.htaccess2. 在里面输入规则,我这里输入 Discuz 的伪静态规则:
代码如下:
# nginx rewrite rulerewrite ^(.*)/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.con
4. 在需要添加伪静态的虚拟主机的 server{}中引入.htaccess 文件.
如下图:
请将以下内容添加到你的.htaccess 文件中(将/var/www/html/xxx.com/bbs/.htaccess 替换为你的.htaccess 文件的具体位置)并保存退出。然后重新加载 nginx 配置文件(代码如下:/etc/init.d/nginx reload)。重新打开网页查看,如果伪静态正常,说明你的 rewrite rule 语法是正确的。
转载请注明:汇站网 » nginx 下支持.htaccess 文件实现伪静态的方法分享