nginx1.14.0配置支持pathinfo和url重寫,運行thinkphp5
apache是默認支持pathinfo,而nginx本身是不支持pathinfo
何爲pathinfo?請看這條url127.0.0.1/test.php/a/b/c,/a/b/c即爲pathinfo
配置pathinfo
經典配置如下:
location ~ \.php${
......
}
配置支持pathinfo
location ~ \.php(.*)${
fastcgi_param PATH_INFO $1;//這條指令是必須添加的
}
配置好pathinfo時可建一個test.php查看自己是否已經成功
<?php
//test.php
echo '<pre>';
print_r($_SERVER);
用127.0.0.1/test.php/a/b/c,進行訪問若打印的數組當中存在PATH_INFO則成功!
URL重寫
當你配置好了pathinfo時,如果此時你運行thinkphp5,需要這樣子訪問,127.0.0.1/xxx/public/index.php/xxx/xx,每一次訪問都需要攜帶index.php,這時可通過url的重寫將index.php隱藏起來
配置如下
在location / { …. }當中添加下列指令
if (!-e $request_filename) {
rewrite ^/First/public/(.*)$ /First/public/index.php?s=/$1 last;
}
/First/public/index.php,index.php前面有幾級的目錄就需要添加幾級的,例如我的項目在訪問當中,是這樣子127.0.0.1/First/public/index.php/…….,則需要添加First/public;
- 此內容參考各大網站、ThinkPHP官方手冊以及私人博客,若有不合理之處,請各位博友指出
- 本文章爲博主原創,轉載請備註出處