1. 程式人生 > >nginx配置ThinkPHP5二級目錄訪問

nginx配置ThinkPHP5二級目錄訪問

以前寫過一次類似的配置經歷,然後過了N長時間,再次配置又發現各種問題,這裡總結一下。

目標效果

對於web根目錄下的如下專案資料夾
資料夾示例
可以通過 http://www.example.com/專案名/模組名/方法名 進行訪問

第一步

如果不能正常訪問,報404錯誤,建議看一看你的nginx配置中是如何處理php的。因為ThinkPHP中index.php並不一定都是在URL中末尾出現的,所以要使用

location ~ .php($|/)

而不是

location ~ .php$

例如如下配置:

location ~ \.php($|/) {
    root           /home/html;
    fastcgi_pass   unix:
/var/run/php/php7.2-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }

第二步

進行URL重寫,將預設訪問URL中的index.php?s=通過rewrite隱藏

location /blog/ {
    index index.php index.html index.htm;
    if (!-e $request_filename
){ rewrite ^/blog/(.*)$ /blog/index.php?s=$1 last; } }

其實nginx的二級目錄配置都是一樣的套路,這裡也可以參考以前寫過的另一篇配置記錄:nginx配置phalcon

有的小夥伴配置後出現訪問資原始檔報錯模組不存在錯誤,這裡只需新增對靜態資原始檔的特殊處理即可,例如:

location ~ .*\.(css|js|gif|jpg|jpeg|png|bmp|swf)$ {
     root         /home/html;
     expires      30d;
 }

相關推薦

nginx配置ThinkPHP5二級目錄訪問

以前寫過一次類似的配置經歷,然後過了N長時間,再次配置又發現各種問題,這裡總結一下。 目標效果 對於web根目錄下的如下專案資料夾 可以通過 http://www.example.com/專案名/模組名/方法名 進行訪問 第一步 如果不

Thinkphp在nginx設置同域名二級目錄訪問

cat name 怎麽 file cati 分享 lis server ram Thinkphp在nginx設置同域名二級目錄訪問,是因為最近弄一個小程序項目,要https,但是只有單個域名,不能通配域名,所有只好用二級目錄,thinkphp二級目錄訪問要怎麽設置呢

使用nginx統一代理dashboard,grafana,Prometheus二級目錄訪問

k8s上的這些管理工具必不可少,可以統一在nginx下的二級目錄下。 ingress是好,但我們不方便使用內部域名,相信麼。。。:) 一,prometheus改造 在prometheus的deployment中傳遞一下—web.external-url引數。如下所示: - name: prome

nginx+tomcat 配置不同二級域名訪問tomcat中的對應專案

先修改tomcat的配置 1、找到tomcat的安裝目錄,進入config目錄。開啟server.xml 2、編輯裡面的內容 找到host節點。複製host節點並且編輯裡面的內容: <Host name="專案訪問的網址" a

Nginx配置資源下載目錄

建立 網上 配置文件 地址 速度 文件路徑 文件 今天 clas 訪問我的博客 之前在網上找 CentOs 的鏡像的時候,發現了阿裏雲的這個鏡像源,速度蠻快的。今天也來搭建一個類似的站,使用 nginx 作為資源下載服務器。 圖片詳情: 安裝 Nginx 參考這篇教程的

Centos7.5 下Nginx配置SSL支援https訪問

核心配置: • 通過指定由受信任的證書頒發機構(CA)頒發的有效證書,將伺服器配置為偵聽埠上的HTTPS流量。• 通過配置nginx.conf檔案來加強安全性。示例包括選擇更強大的密碼,並將所有流量通過HTTP重定向到HTTPS。• 新增HTTP Strict-Transport-Security(HSTS

Nginx反向代理的目錄訪問問題

從昨天就開始糾結了,在做實驗的時候,遇到目錄訪問的問題,如下  前端nginx vhost的設定如下,代理訪問後端的192.168.0.37     server    {            listen  80;            server_name  www.proxy.com;      

nginx 配置禁用ip地址訪問

IP訪問限制使用 ngx_http_access_module 模組,可以在 http, server, location, limit_except 中配置,語法如下: 採用黑名單規則,禁止所有,新增訪問IP。 allow IP; deny all;

nginx配置允許跨域訪問

1、對外提供的查詢訂單資訊介面需要支援跨域訪問: if ($http_origin ~* ((http|https)?://.*\.aa\.(com|hk)$)) { add_header 'Ac

Nginx配置SSL證書實現訪問HTTPS網站

一、什麼是 SSL 證書,什麼是 HTTPS SSL 證書是一種數字證書,它使用 Secure Socket Layer 協議在瀏覽器和 Web伺服器之間建立一條安全通道,從而實現: 1、資料資訊在客戶端和伺服器之間的加密傳輸,保證雙方傳遞資訊的安全性,不可被第三方竊

Nginx配置location限制IP訪問策略

1.配置如下 server { listen 80; server_name localhost; large_client_header_buffers 4 16k; client_max_body

nginx配置pathinfo模式,解決訪問404

什麼是pathinfo,pathinfo是PHP的一個函式 pathinfo() 函式以陣列或字串的形式返回關於檔案路徑的資訊。 返回的陣列元素如下: [dirname]:返回檔案路徑中的目錄部分 [basename]:返回檔案路徑中檔名的部分 [extension]:返回檔案路徑中檔案的型別的部分 p

Nginx配置二級目錄/路徑 映射不同的反向代理和規避IP+端口訪問

nbsp ade 直接 窗口 返回 ngs remote 測試 span 當配置Nginx來映射不同的服務器 可以通過二級路徑來反向代理 來解決一個外網端口實現多個服務訪問。 配置如下: server { listen 80; ser

二級目錄Nginx配置------目前找到的最簡單的方法

clas bubuko color 添加 roo 域名 16px star str 由於項目不知一個,所以不得不為每一個項目建一個專有的文件夾,這就導致了在配置nginx的時候會出現二級目錄 目前找到的最簡單的方法 - step1:修改 vue.config

Nginx配置二級目錄反向代理本機不同埠

前序 最近在家裡的伺服器上裝了一大堆的伺服器軟體,大多數都需要Web網站訪問的,比如:Gitlab、Apache、Jenkins等等。然而又因為是不同的應用,需要佔用不同的埠,每次訪問起來都需要在IP地址後面再加上埠號,應用太多了就老是記不住埠了。。這才突然發

nginx配置網站的二級目錄專案偽靜態

因為業務需求,需要在網站的二級目錄下建立一個新專案shuicao,新專案也要用url重寫的方式訪問,比如www.xxx.com/shuicao/.......。試著配置了一下nginx的重寫規則,如下

nginx配置禁止訪問目錄或檔案

某些網站系統需要使用者上傳圖片等檔案到某些目錄下,難免程式有些漏洞,導致使用者上傳了php、cgi等等可執行的檔案,導致網站陷入非常為難的境地. 此時我們可以通過nginx來禁止使用者訪問這些目錄下的可執行檔案。 nginx配置:location ~^/(uploads

nginx配置目錄訪問&使用者名稱密碼控制

背景 專案上需要一些共享目錄讓外地同事可以網頁訪問對應的檔案,且受許可權控制; 現有環境: centos nginx 你可以瞭解到以下內容: 配置nginx開啟目錄訪問 並配置nginx使用者名稱和密碼進行許可權控制 1/2 列出目錄列表 autoindex on; # 開啟目錄檔案列表 還可以加

nginx配置後只有根目錄首頁index.php能訪問,其他頁面404

found request 首頁 歷程 sharp string index str name 只有首頁面根目錄可以訪問,其他頁面地址都是404 not found。網上找了半天url重定向,url重寫都試了無效,要不就是重定向過多,下圖為跳坑歷程。 1 locatio

解決nginx發布網站跨目錄訪問

ges php5 重啟 otto 訪問 ast con start img 解決nginx發布網站跨目錄訪問(thinkphp5+lnmp) 到:usr/local/nginx/conf/vim fastcgi.cof 把最後一行加上井號#註釋掉保存重啟 restart