如何配置nginx支持nginx pathinfoo模式

扫一扫,访问微社区
查看: 631|回复: 2
云币5433 威望4230 最后登录积分11049注册时间帖子
云币5433 威望4230
本帖最后由 nmfox 于
21:32 编辑
linux中nginx默认不支持PATHINFO模式今天装个tp源码
国内用tp的还是不少。今天试装一个源码结果发现不支持pathinfo
为了seo优化还是不要用默认的模式。其实linux环境下nginx
可以开启pathinfo还是不建议开启试下以下的重写规则吧
#.............
root /www/168;
access_log /usr/local/nginx/logs/168 yundns_
index index.htm default.html index.html index.php default.
server_name XXX ;
location / {
& && && && && && & if (!-e $request_filename){
& && && && && && && && &rewrite ^(.*)$ /index.php?s=/$1 #rewrite模式
& && && && && && && && &rewrite ^(.*)$ /index.php/$1 #pathinfo模式
& && && && && && &&&}
& && && && &&&}
#.............
看下nginx配置中
&&rewrite ^(.*)$ /index.php?s=/$1 #rewrite模式
&&rewrite ^(.*)$ /index.php/$1 #pathinfo模式
把这个加到nginx的网站conf中的location段
云币1377 威望1173 最后登录积分3006注册时间帖子
云币1377 威望1173
男神,赞~~~~~~~
云币6446 威望5246 最后登录积分12847注册时间帖子
云币6446 威望5246
赞、嘿嘿~~~~~~~~
Powered by织梦模板建站、织梦仿站,推荐选跟版网(专业织梦模板定制下载站),您可以把织梦模板网:
亲,跟版网是专业的DEDECMS模板下载和定制开发服务商!您可以选择或者
Nginx下配置pathinfo及ThinkPHP的URL Rewrite模式支持
& &以下内容您可能感兴趣: &
打开Nginx的配置文件 /usr/local/nginx/conf/nginx.conf 一般是在这个路径,根据你的安装路径可能有所变化。如果你配置了vhost,而且只需要你这一个vhost支持pathinfo的话,可以直接打开你的vhost的配置文件。找到类似如下代码(不同版本的nginx可能稍有不同,但是相差不会很远):
&&& location ~ .*.(php|php5)?$
&&&&&&&&&&&&&&& #原有代码
修改成以下代码:
&&& #去掉$是为了不匹配行末,即可以匹配.php/,以实现pathinfo
&&& #如果你不需要用到php5后缀,也可以将其去掉
&&& location ~ .php
&&&&&&&&&&&&&&& #原有代码
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&& #定义变量 $path_info ,用于存放pathinfo信息
&&&&&&&&&&&&&&& set $path_info "";
&&&&&&&&&&&&&&& #定义变量 $real_script_name,用于存放真实地址
&&&&&&&&&&&&&&& set $real_script_name $fastcgi_script_
&&&&&&&&&&&&&&& #如果地址与引号内的正则表达式匹配
&&&&&&&&&&&&&&& 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_
&&&&&&&&&&&&&&& fastcgi_param SCRIPT_NAME $real_script_
&&&&&&&&&&&&&&& fastcgi_param PATH_INFO $path_
这样,nginx服务器就可以支持pathinfo了。但是如果要支持ThinkPHP的URL_MODE设置为2的模式,还需要配置rewrite规则。找到access_log语句,在其上方加上以下语句:
&&& #如果请求既不是一个文件,也不是一个目录,则执行一下重写规则
&&& if (!-e $request_filename)
&&&&&&&&&&& #地址作为将参数rewrite到index.php上。
&&&&&&&&&&& rewrite ^/(.*)$ /index.php/$1;
&&&&&&&&&&& #若是子目录则使用下面这句,将subdir改成目录名称即可。
&&&&&&&&&&& #rewrite ^/subdir/(.*)$ /subdir/index.php/$1;
最后,保存配置文件,重启nginx服务,把ThinkPHP的URL_MODEL设置为2,访问下你的页面,如果能正常访问,恭喜你pathinfo配置成功了^_^
跟版网-专业织梦模板下载平台,转载请注明出处:
& &精心为您推荐: &
& &邀您关注: &
扫描左侧二维码即可在手机端访问此页面
扫描左侧二维码即可关注跟版网官方微信公众号,获取金币模板,还可以免费仿站哦!
扫描左侧二维码即可加入跟版网官方群,免费获取金币资源并可以与其他织梦高手共同交流学习
跟版网率先实现织梦的三网合一网站,从即日起()日,跟版网会陆续免费分享一批金币资源给需要的朋友,关注本站认证官方微信公众账号并回复相应的提取码,系统会自动将下载地址发送给您,同时这些金币资源也会分享在官方的QQ群中,欢迎各位朋友踊跃加入。另外本站后期会每周选择大家比较喜欢的网站仿制,并免费分享给大家,还有免费送金币活动哦!
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
- dede源码分享
售价:0金币
- dede源码分享
售价:20金币
- dede源码分享
售价:10金币
- dede源码分享
售价:40金币
- 织梦html5模板
售价:18金币
& & & 跟版网竭力打造中国最大的织梦源码和织梦模板商城,我们有一批经验丰富的设计师和程序员,发展五年,跟版网拥有丰富的织梦模板,欢迎您的咨询,我们将竭诚为您提供最优质的服务。
& & & 跟版网织梦源码商城坚持“创意+品质+服务”的高端理念,运用创意设计的理念为您塑造高品质的网络品牌形象。凭借五年的探索和实践,跟版网织梦源码商城拥有一支经验丰富、技术精湛、尽职尽责的网络服务团队。精品网站建设,从跟版网织梦源码商城建站开始。
& & & 跟版网织梦源码和模板可分为两种形式获得,一种是官方源码,另外一种是会员共享源码。两种源码都分为免费和收费两种形式。
& & & 跟版网官方收费源码可通过支付费用获得,具体操作流程可查看网址:。会员共享源码可通过共享模板获取金币下载。如觉得麻烦,可以联系客服QQ:进行金币充值,充值后可随意下载。解决nginx 不支持 PATH_INFO的方法
解决nginx 不支持 PATH_INFO的方法
| 时间: 20:19:09 | 阅读数:
[导读] 我采用nginx + php-fpm的配置,nginx默认情况下,不提供PATH_INFO,通过以下设置,可以让 nginx 提供 PATH_INFO:
代码如下复制代码
server { listen 80;
我采用nginx + php-fpm的配置,nginx默认情况下,不提供PATH_INFO,通过以下设置,可以让 nginx 提供 PATH_INFO:
server {&&&& listen 80; &&&& server_&&&& root /&&&& index index.php index.&&&& location / { &&&&&&&& index index.php index.html index.&&&&&&&& include /www_rewrite/.&&&& }&& &&&& location ~ .php($|/) {&&&&&&&& fastcgi_pass 127.0.0.1:9000;&&&&&&&& fastcgi_index index.&&&&&&&& fastcgi_buffers 8 128k;&&&&&&&& send_timeout 60; &&&&&&&& include /etc//fastcgi_&&&&&&&&& set $script_name $fastcgi_script_&&&&&&&& set $path_info &&; &&&&&&&& if ($uri ~ &^(.+?.php)(/.*)$&) {&&&&&&&&&&&&&&& set $script_name $1; &&&&&&&&&&&&&&& set $path_info $2; &&&&&&&& }&& &&&&&&&& fastcgi_param PATH_INFO $path_&&&&&&&& fastcgi_param SCRIPT_NAME $script_ &&&& }&& &}
编写上面程序之后我们的nginx就支持了path_info了,有需要的朋友可以参考一下。
手机扫描下方二维码,关注php100官方微信。
同步官网每日更新,为您带来随时随地的资讯与技术信息。更有不定期的互动抽奖活动,赢取实用贴心的小礼物。
除非特别声明,PHP100新闻均为原创或投稿报道,转载请注明作者及原文链接原文地址:
友情链接与合作伙伴
粤ICP备号-3本栏最新文章
限制 已用 剩余&nginx配置支持pathinfo模式的url访问(原创)-nginx-微转化
不仅仅是使用nginx,着眼于程序员之关注
“赤裸条”事件:167名女大学生10G照片、视频压缩包疯传…
[广告]●●●●●●●●●●●
热门公众号Accounts
精彩内容热门推荐
快速成长的?宾阳?大型网站:移动中,为你提供最新?宾阳?新闻、爆料、社区、招聘求职、楼盘、卖房、转让、商铺开业、旅游
tongxinquan_168
说说通信的那些事!为通信从业人员建立一个沟通、交流和服务的平台!
原生、奇崛、动人,一家专注精品阅读的网站.我们的网站域名是,每个人都是梦想家!
从人文角度了解我们这个世界的经济,从经济角度看待政治,科技,金融,生活,只为苍生说人话!
?仁化?县首家星级数字影院
?山西?法制视点网是经国家工信部批准备案、由?山西?省政府法制办公室、?山西?省新闻出版局主管,?山西?省法制建设促进会主办的法制类网站.借助网络平台宣传法律法规、传播法制理念,为法制宣传教育开拓了新的?服务?平台. ...
aiqingxinlixi
每一段爱情都有独特的一个故事,教你读懂爱情,帮你遇见幸福,这是一个感情的栖息地.
戎马生涯终难忘,绿色军装伴一生;聚焦最可爱的人!
rehuoerCLUB
熟妇控的天堂!!每天有福利图更新哦~~
yiyuankailiao
全新互动式交友渠道,嫁接第三方平台,专注社区交友、附近人交友互助
wei-rongxian
微容县时代,为容县商家提供微平台服务~
nginx配置支持pathinfo模式的url访问(原创)
阅读&61059&发表& 11:38:46
首先,什么是pathinfo模式呢? pathinfo是伪静态的一种,我们先解释一下伪静态的概念,伪静态页面是静态URL与动态URL互通的一个桥梁,它是指动态网址通过URL重写的手段去掉其动态参数,使URL静态化,但在实际的网页目录中并没有重写URL。简单来说,伪静态URL就是通过服务器转换伪装文件名或地址,使该页面类似于静态页面,但服务器上没有独立存在的文件,其本质还是动态页面。 例如:一个动态网址/index.php?m=topic&a=detail&tid=82 转为 伪静态模式后为/index.php/topic/detail/tid/82.html。
apache服务器本身是支持pathinfo的,通过简单修改几项配置即可。当配置支持pathinfo后,在php应用程序中,通过_SERVER['PATH_INFO']变量获取pathinfo值为/topic/detail/tid/82.html。 我们就可以很容易通过php逻辑代码来解析出controller文件、action方法、以及剩余的动态参数,进而就可以返回正确的网页响应。 但是我们要说的nginx服务器默认是不支持pathinfo模式访问。实质上就是nginx不会去设置环境变量PATH_INFO 的值,导致php应用程序不能通过_SERVER['PAHT_INFO']来获取path_info, 也就不能解析出对应的动态参数。 好了,终于到本文的正题了,nginx支持pathinfo的配置如下: 1. 找到ngingx的配置文件nginx.conf 在server里的location项,修改前为:
location ~ \.php$ { 注:去掉本行的$ 字符
fastcgi_pass
127.0.0.1:9000;
fastcgi_index
index.php;
fastcgi_param
SCRIPT_FILENAME
$document_root$fastcgi_script_name;
fastcgi_params;
注:下面加上一些配置语句
修改后为:
location ~ \.php {
fastcgi_pass
127.0.0.1:9000;
fastcgi_index
index.php;
fastcgi_param
SCRIPT_FILENAME
$document_root$fastcgi_script_name;
fastcgi_params;
#定义变量 $path_info ,用于存放pathinfo信息
set $path_info &&;
#定义变量 $real_script_name,用于存放真实地址
set $real_script_name $fastcgi_script_
#如果地址与引号内的正则表达式匹配
if ($fastcgi_script_name ~ &^(.+?\.php)(/.+)$&) {
#将文件地址赋值给变量 $real_script_name
set $real_script_name $1;
#将文件地址后的参数赋值给变量 $path_info
set $path_info $2;
#配置fastcgi的一些参数
fastcgi_param SCRIPT_NAME $real_script_
fastcgi_param PATH_INFO $path_
}2.重启nginx和phpcgi 其他参考: thinkphp 框架比较好了支持了pathinfo模式访问,可以去深入了解一下它是怎么支持pathinfo格式的。 就是基于thinkphp框架,而且全站使用的都是pathinfo访问
评论Comments
微信公众号

我要回帖

更多关于 nginx pathinfo 的文章

 

随机推荐