中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 服務器 > 
  • 如何實現Nginx泛解析到子目錄后自動判斷有無public目錄

如何實現Nginx泛解析到子目錄后自動判斷有無public目錄

發布時間:2021-08-21 11:14:01 來源:億速云 閱讀:165 作者:小新 欄目:服務器

這篇文章主要介紹如何實現Nginx泛解析到子目錄后自動判斷有無public目錄,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

前言

我們大家在配置本地 PHP 開發環境時,除非是在 Windows 下,否則我都是偏向于 Nginx + PHP-FPM, 即使 Mac 下已經有了自帶的 Apache+PHP 環境,依然如此。一方面是因為 Mac 自帶的 PHP 版本不夠新(5.6.x),另一方面,Nginx + PHP-FPM 更接近于我的生產服務器環境,而且也方便用 Homebrew 來管理版本和擴展。

在 Mac 下開發 Laravel, 官方提供了 valet, 可以方便地把子目錄映射為虛擬主機,但我在使用的時候,遇到一些問題:

  • 真實錯誤信息難以追蹤,總是報 valet 的 index.php 或者 laravel 的 index.php 錯誤;

  • Symfony 框架里的 config.php/app_debug.php 等無法直接訪問。

于是我只保留了 dnsmasq 來管理特定后綴的域名(實現自動解析),然后放棄了 valet,自己做了一個泛解析綁定到本地子目錄的配置。

具體配置如下(域名是 *.app):

server {
 listen 80;
 server_name ~^(?<subdomain>.+).app$;
 set $root /Users/kairee/Sites/$subdomain;
 
 if ( -d "/Users/kairee/Sites/$subdomain/public") {
  set $root /Users/kairee/Sites/$subdomain/public;
 }
 root $root;
 charset utf-8;
 client_max_body_size 128M;
 index index.php;
 
 location / {
  try_files $uri $uri/ /index.php$is_args$args;
 }
 
 access_log off;
 
 location ~ \.php\?? {
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass unix:/tmp/php.sock;
  fastcgi_index index.php;
  include fastcgi_params;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 }
 
 location ~ /\.ht {
  deny all;
 }
}

采用這個配置以后:

  • 如果存在 ~/Sites/domain/public, 則 domain.app 域名的根目錄會指向 ~/Sites/domain/public;

  • 如果存在 ~/Sites/domain 但是不存在 ~/Sites/domain/public, 則 domain.app 域名的根目錄會指向 ~/Sites/domain;

  • 網站根目錄下真實存在的 php 文件可以直接訪問,只有不存在的文件才會通過入口文件(index.php)處理;

  • 如果需要支持其它框架,可以在配置文件中加一條 if 語句實現,比如要支持 symfony 的話,復制一下 if 判斷塊,把 public 改成 web 即可。

以上是“如何實現Nginx泛解析到子目錄后自動判斷有無public目錄”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洮南市| 宾川县| 洪洞县| 辽阳县| 齐齐哈尔市| 克什克腾旗| 鄂托克旗| 沅江市| 淅川县| 平舆县| 吉隆县| 延吉市| 西宁市| 东城区| 唐海县| 绥棱县| 北流市| 平原县| 瑞安市| 云霄县| 肥东县| 农安县| 吴桥县| 太白县| 湄潭县| 鄱阳县| 土默特左旗| 微博| 大渡口区| 壤塘县| 庆云县| 宣汉县| 新泰市| 西城区| 庆安县| 四川省| 泽库县| 吉木乃县| 桓台县| 石渠县| 西安市|