今晚配置了下LNMP环境下的阿里云服务器,将网站(使用的是自己写的BasePHP Beta框架)部署完毕后发现伪静态功能未能启用,才发现原来nginx并不像apache那样可以直接支持pathinfo,因此百度了一下,找到了启用pathinfo的解决方案。
打开nginx.conf配置文件,找到类似如下代码的地方(不同版本的nginx可能稍有不同,但相差不远):
-
location~\.php$
-
{
-
#原有代码
-
}
将其改成:
-
#去掉$是为了不匹配行末,即可以匹配.php/,以实现pathinfo
-
location~\.php
-
{
-
#原有代码
-
-
#定义变量 $path_info
-
set$path_info"";
-
#定义变量 $real_script_name,用于存放真实地址
-
set$real_script_name $fastcgi_script_name;
-
#如果地址与引号内的正则表达式匹配
-
if($fastcgi_script_name~"^(.+?\.php)(/.+)$"){
-
#将文件地址赋值给变量 $real_script_name
-
set$real_script_name $1;
-
#将文件地址后的参数赋值给变量 $path_info
-
set$path_info $2;
-
}
-
#配置fastcgi的一些参数
-
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
-
fastcgi_param SCRIPT_NAME $real_script_name;
-
fastcgi_param PATH_INFO $path_info;
-
}
这样,nginx服务器就可以支持pathinfo了。
上面做的是让PHP文件能够接收到pathinfo的参数,那么现在剩下要做的就是要将参数rewrite到单一的入口文件index.php上。在网上搜索了一下WordPress在nginx环境下的固定链接配置方式,发现都比较繁琐,于是直接自己写了一段rewrite规则,加在access_log语句的上方即可:
-
#如果请求即不是一个文件,也不是一个目录
-
if(!-e $request_filename)
-
{
-
#地址作为将参数rewrite到index.php上。
-
rewrite^/(.*)$ /index.php/$1;
-
#若是子目录则使用下面这句,将folder改成目录名称即可。
-
#rewrite ^/folder/(.*)$ /folder/index.php/$1;
- }
=======================签 名 档=======================
原文地址(我的博客):http://www.clanfei.com/2012/10/1657.html
欢迎访问交流,至于我为什么要多弄一个博客,因为我热爱前端,热爱网页,我更希望有一个更加自由、真正属于我自己的小站,或许并不是那么有名气,但至少能够让我为了它而加倍努力。。
=======================签 名 档=======================
分享到:
相关推荐
Nginx下让WordPress支持固定链接的伪静态规则,要让nginx支持wordpress固定链接非常简单,需要自己进行添加点配置代码
蚂蚁伪静态nginx
NGINX1.8泛解析伪静态完整文件,把后缀txt改成conf,其实我想大家看的就是泛域名部分了,因为实在没积分下载资源了,所以定了5分,请见谅。
在几个blog程序中折腾的结果,导致url连续二次变化。这是第三次了。 nginx 通过rewrite 使用 permanent; 参数 成301永久url重定向
nginx默认不支持pathinfo,最近在调用而支付宝的回调接口 只能使用这种模式
wordpress在nginx下的静态规则
让thinkphp3.1.3支持php7及nginx支持伪静态
mayicms蚂蚁分类信息5.9伪静态规则
nginx+php,让nginx支持PHP的PATHINFO路由模式_亲测成功.zip apache+php支持PATHINFO路由模式非常容易,但是nginx对pathinfo可不支持,需要你自己配置正则路径.看看我怎么配的
pathinfo是伪静态的一种,我们先解释一下伪静态的概念,伪静态页面是静态URL与动态URL互通的一个桥梁,它是指动态网址通过URL重写的手段去掉其动态参数,使URL静态化,但在实际的网页目录中并没有重写URL。...
nginx设置伪静态。 用于隐藏.php后缀,在url后补斜杠/
nginx 伪静态 重定向
直接把文件复制到 nginx文件夹下面 ngnix.conf里面改下你xxx.com.conf的名称和xxx.com.conf的名称
本篇文章主要介绍了Nginx下实现pathinfo及ThinkPHP的URL模式。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
我们都知道wordpress后台可以设置固定连接来优化我们网站的URL(当然可能你不知道,不知道请查看:wordpress固定...apache设置wordpress伪静态我们可以在网站的更目录下建立.htaccess文件来实现,在.htaccess添加如下
discuz X3 伪静态文件 http.ini
nginx作服务Discuz伪静态规则,将PHP伪装成HTML,优化搜索。