您的位置:博客首页 >> Web服务器 >> Nginx 虚拟主机伪静态设置

Nginx 虚拟主机伪静态设置

日志编号:28 发表时间: 2011-12-08 10:19:27 关注次数:3750
Nginx使用.htaccess文件设置伪静态比apache稍微麻烦点,需要vi /usr/local/webroot/nginx.conf在server区加入:
include /usr/www/.htaccess

另外比较大的问题是:在某目录直接加.htaccess来禁止访问那个目录(比如配置文件、数据备份目录)的方法不可取了(需要在nginx.conf直接指定目录后写deny all)。

.htaccess的语法Nginx和Apache的大同小异:
rewrite ^/index.html$ /index.php;

Nginx可以通过if语句来强化功能,不过不支持ErrorDocument 404 /404.htm和RewriteBase /bbs

也可以把规则直接写到nginx.conf里。

另外,防止被人下载查看.htaccess,需要在nginx.conf中location ~ /\.ht {deny  all;}

.htaccess的效率没有直接写到nginx.conf上的效率高。这在apache也是一样的。不过不用担心这个10年前讨论的问题,而且nginx_host.conf本身就使用了include:include fastcgi_params;,这和include .htaccess没有区别。如果是一个访问量大的稳定网站,就把规则写到nginx.conf里去吧。
    另外,Nginx下,修改了.htaccess规则,则必须重启Nginx方能生效(Apache不需要):/usr/local/nginx/sbin/nginx -s reload
简单示例:
rewrite ^/show/([0-9]+)$ /show.php?id=$1;
rewrite ^/(taobao|news|life)+/?([0-9]*)$ /list.php?ac=$1&page=$2 last;
本站不提供讨论功能。
本站所有非新闻类文章均为原创,且禁止转载。
本站为了获得更多流量赚取广告费,难免会有以次充好的文章,望见谅,勿鄙视。