亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > Nginx > 正文

Nginx如何實現pathinfo模式的方法詳解

2024-08-30 12:29:12
字體:
來源:轉載
供稿:網友

什么是pathinfo模式呢?

pathinfo是偽靜態的一種,我們先解釋一下偽靜態的概念,偽靜態頁面是靜態URL與動態URL互通的一個橋梁,它是指動態網址通過URL重寫的手段去掉其動態參數,使URL靜態化,但在實際的網頁目錄中并沒有重寫URL。簡單來說,偽靜態URL就是通過服務器轉換偽裝文件名或地址,使該頁面類似于靜態頁面,但服務器上沒有獨立存在的文件,其本質還是動態頁面。

使用過 ThinkPHP 框架開發應用的同學應該都會知道,它有一種 URL 模式就是 pathinfo,看起來類似下面的 URL:

http://example.com/module/controller/action/key1/value1/key2/value2.html

其實上面的 URL 的原型是下面的樣子:

// 這個才是正宗的 URL,上面那個是冒牌的http://example.com/index.php?m=module&c=controller&a=action&key1=value1&key2=value2

既然 pathinfo 模式的 URL 不是正宗的,那為什么不用正宗的呢,用正宗的不好嗎?相對于正宗的 URL,pathinfo 模式的確實是有優勢的,以下簡單列舉幾項它的好處。

  • 它提供了最好的SEO支持
  • 可以實現 URL 的偽靜態
  • 它看起來更簡潔、更好看

pathinfo 模式的 URL 有這么多優點,那我們肯定要支持了。ThinkPHP 更多的 URL 模式配置及實現,可以參考這篇文檔。

本文主要討論的是 pathinfo 模式的 URL 在 Nginx 中的實現,ThinkPHP 官方文檔中沒有介紹,但是它實現起來也挺簡單的。以下是實現過程的一些思考。

一個標準的通用的 URL 格式是類似下面那樣子的:

<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>

參照通用的 URL 格式,對比可以發現,pathinfo 模式的相對于標準模式的 URL,有兩個地方的區別比較大,一個是沒有了 index.php 文件,另一個是查詢參數并沒有使用符號“?”隔開。

現在要做的就是在 Nginx 接收的 pathinfo 模式的 URL 請求時,將它還原成標準的 URL 模式,這樣服務器就能正常處理了。

把缺失的 index.php 文件補上

這個需要用到 Nginx 的 rewrite 指令,它的作用是將請求的 URI 替換成目標 URL。在這里需要達到的效果是,將

http://example.com/module/controller/action/key1/value1/key2/value2.html

替換成

http://example.com/index.php/module/controller/action/key1/value1/key2/value2.html

當然,并不是所有的 URI 都會進行此規則的重寫,只有那些不是文件的 URI 才進行重寫。所以,關于重寫的指令將會類似下面的:

# 如果請求的文件不存在,則進行 URI 重寫# 在原有的基礎上添加入口文件 index.phpif (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last;}

通過以上配置就能達到補全 index.php 入口文件的效果了。

區分符號 ?前后的內容

在通用的 URL 中,符號“?”是具有特殊作用的,它是用來將查詢字符串和前面的文件隔開。在 pathinfo 模式的 URL 中,符號“?”沒有了,也就是說,服務器無法區分 URI 中哪些是文件,哪些是查詢字符串了。所以,我們的目的是將 pathinfo 模式中本來應該由符號“?”區分的內容給手動區分開來。

還好,Nginx 中有個指令可以實現我們的目的,fastcgi_split_path_info。它可以將正則表達式定義的兩個串分別賦值給變量 $fastcgi_script_name 和變量 $fastcgi_path_info,以供后文使用。更多關于 fastcgi_split_path_info 的信息,請查閱這里

相關配置類似下面的代碼:

location ~ ^(.+/.php)(.*)$ { root /var/www/html/$vhost_path; fastcgi_pass phpfpm:9000; fastcgi_split_path_info ^(.+/.php)(.*)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; include fastcgi_params;}

一個簡單的例子

通過上面兩部份的配置,現在的 Nginx 服務器已經支持 pathinfo 模式的 URL 了,以下是一個簡單的 server 配置,僅供參考:

server { listen 80; server_name tp5.loc; set $vhost_path tp5/public; location / { root /usr/share/nginx/html/$vhost_path; index index.php index.html index.htm; if (!-e $request_filename) {  rewrite ^/(.*)$ /index.php/$1 last; } } location ~ ^(.+/.php)(.*)$ { root /var/www/html/$vhost_path; fastcgi_pass phpfpm:9000; fastcgi_split_path_info ^(.+/.php)(.*)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; include fastcgi_params; }}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
免费av在线一区| 亚洲精品乱码久久久久久按摩观| 一区二区三区美女xx视频| 日韩动漫免费观看电视剧高清| 黑人巨大精品欧美一区二区三区| 久久视频在线视频| 国产精品h在线观看| 国产成人精品免高潮费视频| 国产精品入口尤物| 久久精品国产清自在天天线| 日本一欧美一欧美一亚洲视频| 成人国产精品久久久久久亚洲| 88国产精品欧美一区二区三区| 久久久av免费| 国产精品永久免费在线| 97在线视频免费看| 最近2019年好看中文字幕视频| 久久久女女女女999久久| 亚洲欧美激情另类校园| 亚洲欧美激情四射在线日| 91精品国产综合久久香蕉的用户体验| 色播久久人人爽人人爽人人片视av| 久久精品色欧美aⅴ一区二区| 一区二区三区www| 久久久久久久电影一区| 亚洲国产成人精品女人久久久| 国产一区二区成人| 亚洲国产美女久久久久| 亚洲欧美日韩在线一区| 精品久久久久久中文字幕一区奶水| 久久不射电影网| 欧美一区二区三区……| 日韩精品欧美激情| 亚洲午夜激情免费视频| 精品久久久久久国产| 黑人欧美xxxx| 国产精品久久久av| 一本色道久久88亚洲综合88| 国产精品96久久久久久| 久热精品视频在线免费观看| 国产精品视频xxxx| 亚洲色无码播放| 日韩av在线资源| 欧美成人精品在线| 国产日韩欧美视频| 98精品国产高清在线xxxx天堂| 久久久精品一区| 国产不卡av在线| 国产一区欧美二区三区| 成人看片人aa| 精品国产精品三级精品av网址| 国内精品久久久久影院 日本资源| 国产精品久久久久久亚洲影视| 伊人久久综合97精品| 亚洲成人久久久久| 黑人巨大精品欧美一区二区三区| 国产亚洲精品综合一区91| 欧美猛交ⅹxxx乱大交视频| 国产精品美女久久久久久免费| 久久男人av资源网站| 国产欧美最新羞羞视频在线观看| 成人欧美一区二区三区在线湿哒哒| 日韩欧美在线字幕| 久久久精品2019中文字幕神马| 美日韩丰满少妇在线观看| 日韩精品极品视频| 欧美激情综合色| 久久久亚洲福利精品午夜| 9.1国产丝袜在线观看| 欧美性xxxxxx| 日韩激情av在线免费观看| 国产精品自产拍在线观| 日韩视频在线一区| 深夜福利一区二区| 国产精品久久久久久久天堂| 精品久久久久久久大神国产| 久久久久久久999| 亚洲第一黄色网| 超碰日本道色综合久久综合| 91久久精品国产| 国内精品久久影院| 亚洲在线观看视频网站| 韩曰欧美视频免费观看| 亚洲欧洲在线播放| 成人在线观看视频网站| 在线观看日韩专区| 欧美午夜精品在线| 青青久久av北条麻妃黑人| 日韩经典第一页| 92看片淫黄大片看国产片| 欧美精品九九久久| 少妇精69xxtheporn| 亚洲二区在线播放视频| 亚洲一品av免费观看| 日韩在线观看你懂的| 亚洲国产中文字幕在线观看| 久久99久久99精品中文字幕| 亚洲国产精品久久久久秋霞不卡| 色妞欧美日韩在线| 久久视频中文字幕| 国产欧美精品va在线观看| 日韩中文字幕免费| 97精品国产97久久久久久免费| 久久人人爽人人爽爽久久| 欧美乱大交xxxxx另类电影| 国产精品最新在线观看| 一本色道久久88综合日韩精品| 91精品国产综合久久久久久久久| 久久99久久99精品免观看粉嫩| 欧美亚洲日本黄色| 91国内在线视频| 一区二区三区久久精品| 亚洲精品狠狠操| 亚洲成人在线视频播放| 日韩激情视频在线播放| 亚州精品天堂中文字幕| 日韩成人在线免费观看| 国产高清视频一区三区| 国产精品久久久久7777婷婷| 色系列之999| 国产精品日韩在线一区| 亚洲天堂网站在线观看视频| 日本精品va在线观看| 国产精品成人久久久久| 亚洲美女自拍视频| 亚洲japanese制服美女| 久久久久久久久亚洲| 中文字幕在线日韩| 国产日韩综合一区二区性色av| 日韩中文字幕网| 91在线观看免费| 亚洲精品中文字幕有码专区| 亚洲欧美日韩第一区| 亚洲国产一区二区三区在线观看| 国产精品日日做人人爱| 综合国产在线观看| 精品一区二区三区四区| 一二美女精品欧洲| 亚洲精品98久久久久久中文字幕| 国产自产女人91一区在线观看| 色99之美女主播在线视频| 成人欧美在线观看| 国产精品96久久久久久又黄又硬| 色99之美女主播在线视频| 色噜噜亚洲精品中文字幕| 国产在线拍偷自揄拍精品| 全亚洲最色的网站在线观看| 日韩欧美第一页| 中文字幕不卡av| 国产欧美va欧美va香蕉在线| 日韩欧美在线网址| 中文字幕日韩精品在线| 久久久久久久国产| 日韩视频一区在线| 亚洲r级在线观看| 精品国产老师黑色丝袜高跟鞋| 欧美成人精品在线| 国产成人91久久精品| xxx欧美精品| 国产精品免费看久久久香蕉| 久久久亚洲欧洲日产国码aⅴ| 91欧美精品成人综合在线观看| 精品视频在线导航| 中文字幕自拍vr一区二区三区|