Nginx 中伪静态的方法

Nginx:
      Nginx下设置伪静态方法与Apache差不多,直接在nginx.conf (或者在对应的*.conf) 中找到需设置伪静态规则的服务器对应字段,在server{ location/{ } }中添加以下代码:

server {
    listen 80 default_server;
    server_name _;
    location / {
         root /usr/share/nginx/html;
         index index.html index.htm;
         rewrite ^(.*)list-([0-9]+)-([0-9]+)\.html$ $1list.php?page=$2&id=$3;
         }
}
添加后重启Nginx服务即可生效!

正则表达式匹配

      就用上面的例子中的伪静态策略来简单解释下正则表达式在配置的作用:
策略:RewriteRule ^(.*)list-([0-9]+)-([0-9]+)\.html$ $1list.php?page=$2&id=$3
请求路径: http://www.abc.com/list-123-456.html

本策略分成两段,第一段是使用正则表达式去匹配请 求访问的路径,第二段是将匹配后的参数转化为真实访问的路径。策略执行时:^(.*)list-([0-9]+)-([0-9]+)\.html$ /list-123-456.html 这个字符串进行匹配:
  • ^和$字符分别代表了匹配输入字符串的开始和结束
  • ()中的匹配到的内容会被按顺序分配到变量$1 $2 $3中
  • .*匹配任意字符串,且长度从0个到多个,故$1值为/
  • [0-9]+匹配字符0-9,长度1个到多个,故$2和$3分别是123和456

所以最后真实访问的动态地址为 /list.php?page=123&id=456

上面只是介绍了基本的配置策略,其实这个rewrite规则还有非常多的玩法,例如使用 RewriteCond进行域名层面的重写跳转,接下来可以找些资料慢慢补充。

你可能感兴趣的:(Nginx 中伪静态的方法)