Nginx下访问源代码.html文件重定向到相对目录下.php文件

                                                        请求报错404故障

故障描述:

LNMP环境下发布商城源代码,通过web请求访问.html文件报404错误请求文件不存在,在源代码里只存在.php文件

例子图:

Nginx下访问源代码.html文件重定向到相对目录下.php文件

程序默认访问时根路径下的这个.html文件,但这个文件类型在源代码里并不存,源代码里只有.php文件类型。

Nginx下访问源代码.html文件重定向到相对目录下.php文件

当你手工将后缀名改成.php之后就可以正常显示网页内容;

经过排查是缺少伪静态规则

#“/”一般匹配 “=”绝对匹配

location / {

 

# if判断请求文件是否存在,存在为真则不执行下面的重写,不存在则为假执行下面重写语句

if (!-e $request_filename) {

 

#将访问/根目录下的 .html 文件重定向到相对路径下的 .php 文件,

rewrite ^/(.*)\.html$ /$1.php last;

}

}

 

注释:

"last" 代表匹配成功后又从头开始去匹配,当匹配不成功则跳到下一条

"break" 代表跳过这段重写规则执行下一条重写规则

"^" 代表正则表达式开始

"/(.*)\.html " 代表根目录下所有 .html 文件类型

"$" 代表一个正则表达式结束

"/" 代表根目录

"$1" 代表调用第一个参数,也就是前一个正则表达式,或者说是"/(.*)\.html "这里面的内容

".php" 重定向成这个类型的文件

加入伪静态规则之后重启服务再去访问:

Nginx下访问源代码.html文件重定向到相对目录下.php文件

故障解决!