在nginx服务器上搭建伪静态

496 阅读1分钟

环境

我用的环境是phpstudy

环境:nginx 和 php

默认的话是在nginx里的配置文件里直接配置,我们这里创建了本地域名,所以需要在对应的域名里边的配置文件进行修改。

域名下的配置文件

如果有创建域名,那么配置文件在vhosts的创建的域名下边。

代码如下:

server {
        listen        80;
        server_name  www.static.com;
        root   "D:/phpstudy_pro/WWW/www.static.com";
        location / {
            index index.php index.html error/index.html;
            error_page 400 /error/400.html;
            error_page 403 /error/403.html;
            error_page 404 /error/404.html;
            error_page 500 /error/500.html;
            error_page 501 /error/501.html;
            error_page 502 /error/502.html;
            error_page 503 /error/503.html;
            error_page 504 /error/504.html;
            error_page 505 /error/505.html;
            error_page 506 /error/506.html;
            error_page 507 /error/507.html;
            error_page 509 /error/509.html;
            error_page 510 /error/510.html;
            include D:/phpstudy_pro/WWW/www.static.com/nginx.htaccess;
            autoindex  off;
            #这个是伪静态的配置
            rewrite ^(.*)$ $1/index.php last;
        }
        location ~ .php(.*)$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }



}

nginx使用Rewrite重写

Rewrite主要的功能是实现URL重写,Nginx 的 Rewrite 规则采用 PCRE Perl 兼容正则表达式的语法进行规则匹配,如相使用 Nginx 的 Rewrite 功能,在编译 Nginx 前要编译安装 PCRE 库。Rewrite主要实现url地址重写,以及重定向,就是把传入web的请求重定向到其他url的过程。

rewrite只能放在server{},location{},if{}中

规则

rewrite ^(.*) 1/index.php last;

第一个参数是旧的页面地址 如上述的 ^(.*)$

第二个参数是展现内容的地址 $1/index.php

$1表示的是前面正则分组内容

注意事项:第一个参数必须是一个正则表达式

更复杂的案例

例如:我输入的地址是 www.static/daoshi-shen… 就会显示 www.static/daoshi.php 里边

规则如下:

            #这个是伪静态的配置
            rewrite ^(.*)/daoshi-(\w+)/$ $1/daoshi.php last;

如下是daoshi.php的代码:

结果如下: