Nginx二级域名代理二级目录

2023-11-05

背景

今天做私单遇到一个很棘手的问题,甲方购买的是阿里云虚拟主机,众所周知虚拟主机虽然能绑定多个域名,但是只能指定一个根目录,也就是所有域名的访问都是指向到根目录。

一共是开发了PC端、WAP端、管理端三个段,都要部署上去,用的vue-cli开发,路由是 domain/page 形式的 (非domain/#/pages),这对虚拟主机的支持非常不好,因为除了PC端,其他端都只能放二级目录中,这样的话就只能通过二级域名,利用nginx代理到二级目录

于是在各种搜索引擎的强力加持下,结合自己的理解,尝试了几个小时终于成功了,直接放配置

location / {
    if ($host = "wap.xxx.cn") {
        rewrite ^/(.*)$ /wap/$1 last;
    }

    if ($host = "admin.xxx.cn") {
        rewrite ^/(.*)$ /admin/$1 last;
    }

    if (!-e $request_filename) {
        rewrite ^/(.*)$  /index.php/$1  last;
    }
}

location /wap {
    if (!-e $request_filename) {
        rewrite ^/(.*)$  /wap/index.php  last;
        break;
    }
}

location /admin {
    if (!-e $request_filename) {
        rewrite ^/(.*)$  /admin/index.php  last;
        break;
    }
}

划重点:不知道为什么这样设置后,index index.html index.php 不起作用了,它只找index.php,否则404,所以我就吧index.html 改名为 index.php

剖析

首先是二级域名代理到二级目录

    if ($host = "admin.xxx.cn") {
        rewrite ^/(.*)$ /admin/$1 last;
    }

避坑:如果只写这个,会重写死循环,需要把last改为break

当写好上面的代理后,能正常访问静态文件,但是由于我们的前端是 domain/pages 这种格式的,刷新页面后直接访问到/index.php,所以要在底下增加对应目录的重写配置

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nginx二级域名代理二级目录 的相关文章

  • 当错误较多时,Laravel 不会显示错误。这是 Bug?

    重复的https github com laravel framework issues 31123 https github com laravel framework issues 31123 Laravel 版本 6 8 0 6 10
  • 计算两个数字之间的差异

    我想计算两个给定数字之间的差异 例如 1 5 或 24 35 我必须将数组中的数字分开并写出它们之间的差异 如下所示 1 2 3 4 5 或 24 25 26 27 28 29 30 31 32 33 34 35 是否有任何 php 函数可
  • 如何在 标签中用 %20 替换空格

    我想替换 html 文本的图像标签中的所有空格 Example img src to img src photo 201 jpg 我没有找到 preg replace 的解决方案 但它可能是一个简单的正则表达式行 谢谢 Edit 抱歉各位
  • symfony 2 形式的函数 getName 做什么

    这是我的表格类 class CommentType extends AbstractType public function buildForm FormBuilder builder array options builder gt ad
  • Laravel 5 与 SAML 2 和现有 IDP 集成

    我使用 Laravel 5 我正在尝试将 SAML 2 0 与其集成 我找到了这个包 https github com aacotroneo laravel saml2 https github com aacotroneo laravel
  • PHP 警告 ZipArchive::extractTo():权限被拒绝

    我创建了一个应用程序 它使用 ZipArchive 类 php 中的标准 中的方法 extractTo 并在 Windows 7 上的本地主机 apache 服务器上对其进行了测试 没有任何问题 但是当我在一些unix生产服务器上尝试过它之
  • FPDF - 内嵌粗体文本

    我正在尝试从 PHP 创建 PDF 出于法律原因 我们需要将免责声明的一部分设为粗体 并且需要概述免责声明 我当前的代码使用 if isset POST optout POST optout yes pdf gt Ln 5 pdf gt S
  • 配置 .htaccess 以在 PHP 框架 (Silex) 上工作

    我的 Apache2 本地主机 linux 上有一个工作路径 http localhost lab silex web index php hello name 我想成为 http localhost lab silex hello nam
  • jQuery和PHP中如何知道返回数据是Json还是String?

    我想在客户端 jQuery 检查 PHP 函数返回的数据是否是 Json 对象或 String 来分配不同的函数 如果 json 的格式不正确 jQuery 的 parseJson 将生成异常 您可以将调用包装在 try catch 块中
  • 从提交的表单中转义字符串中的字符

    每次发布帖子时 我都会得到转义字符 gt gt gt 我有一个多步骤表单 它将数据从一种表单传输到另一种表单 我将这些值与准备好的语句一起保存在数据库中 数据库中的值当前看起来像Paul s House 用户应该可以在字符串中使用单引号和双
  • Propel Query 中的动态表名称

    我想知道您是否可以使 propel 查询的表名称动态化 有点像变量 一个例子类似于 DynamicVar Query create 我让它在 ifs 中工作 就像下面的例子一样 但如果更动态地制作 可以删除相当多的行 这些表的设置都是相同的
  • 使用 PDO 在 SQLite 中检索单个(且唯一)行的最简单方法

    我有这个 PDO stmt db gt prepare SELECT FROM channels WHERE id id stmt gt bindValue id id SQLITE3 INTEGER result stmt gt exec
  • 需要 mysqli_fetch_all 的替代方案

    我有一个 php mysqli 代码 可以找到一个我的本地服务器 但是在我的服务器上使用它时 我得到了一个 Fatal error Call to undefined function mysqli fetch all in home3 t
  • Yii2 DropDownList Onchange 更改自动完成小部件“源”属性?

    我已经尝试过这个 yii2 依赖的自动完成小部件 https stackoverflow com questions 27025791 yii2 dependent autocomplete widget 但我不知道为什么它不起作用 这是我
  • 避免 SQLite3 中的 SQL 注入

    我正在尝试找出一种避免 SQL 注入的好简单方法 到目前为止我只能提出两个想法 对用户输入进行 Base64 编码 其实不想这样做 使用正则表达式删除不需要的字符 目前正在使用这个 不确定是否100 安全 这是我当前的代码
  • php,in_array,0值

    我试图理解in array下一个场景的行为 arr array 2 gt Bye 52 77 3 gt Hey var dump in array 0 arr 返回值in array 是布尔值true 正如你所看到的no值等于0 所以有人可
  • $_SESSION 中保存大量信息可以吗?

    我需要存储许多数组 SESSION以防止从 MySQL 检索信息 可以吗 其中 太多 的信息有多少 SESSION还是没有 太多 谢谢 附 或者更好地使用http php net manual en book memcache php ht
  • PHP 中的嵌套 JSON 输出

    我正在为 iOS 应用程序构建 API 并尝试将 mySQL 数据转换为 JSON 字符串进行处理 所需的输出将需要顶级订单详细信息 例如客户名称和地址 然后是订购的产品子数组 我需要的两个表中有相当多的字段 我希望拥有所有字段 我已经构建
  • 如何显示不同页眉的页面? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在为我的学校项目开发网站 但我遇到了一个问题 我在每个页面上显示一个标题 我的标题之一包含登录表单 另一标题包含用户名 搜索栏等 问题是
  • PHP 除法浮点值问题

    当我尝试获取余数时 它给出了无效值 我试图获得两位小数的余数 我得到 3 4694469519536E 18 我的价值观是 x 0 1 y 0 005 我尝试了以下方法 echo ed fmod 0 1 0 005 OutPut 3 469

随机推荐

  • 怎样做自媒体视频剪辑赚钱?

    不想真人出镜 但是想做自媒体赚钱 除了发布图文作品和音频作品外 我们还可以做视频剪辑发布到自媒体平台上 简单的说就是剪辑一些现有的视频作品 重新剪辑成一个新的作品并发布到自媒体平台上获得收益 不说多了 每天收益100 200还是不难的 新手
  • 函数指针做函数参数

    什么是函数指针 当我们定义一个函数的时候 编译器会为这个函数分配一段内存空间 而这段内存空间的首地址就是函数指针 函数指针的定义 函数返回值类型 指针变量名 函数参数列表 int p int int 这个语句就定义了一个指向函数的指针变量
  • python uiautomation mac os_(selenium+python)_UI自动化01_Mac下selenium环境搭建

    前言 Selenium是一个用于Web网页UI自动化测试的开源框架 可以驱动浏览器模拟用户操作 支持多种平台 Windows Mac OS Linux 和多种浏览器 IE Firefox Chrome Safari 可以用多种语言 Java
  • java new file会创建文件吗_Java高级——文件与I/O流

    简介 本文分为四个部分 首先是介绍File类 概括了一下概念 构造方法及常用方法等 其次是描述了面对对象的三大特征 再次是对抽象类进行了简单的概述 最后从特性 使用等等几个方面对接口进行了一定的描述 一 File类 1 File类概念 1
  • STM32F103系列控制的OLED IIC 4针

    最近在研究四针的OLED 先上个效果图 总工程文件评论区留下邮箱我会发送 硬件部分 有开发板的直接用开发板就好 没有的去某宝买一块STM32F103C8T6 10元左右 类似这种 接线部分 OLED一共有四个接口 本别是SCL 时钟 SDA
  • Qt-OpenCV学习笔记--高级形态转换--morphologyEx()

    概述 OpenCV提供了一个综合的形态转换工具 morphologyEx 集成了腐蚀运算 膨胀运算 开运算 闭运算 梯度运算 顶帽运算 黑帽运算 函数 void cv morphologyEx InputArray src OutputAr
  • 【云原生--Kubernetes】Helm 工具安装

    文章目录 一 Helm 概述 1 1 Helm 简介 1 2 Helm重要概念 1 3Helm2 组件 1 4Helm2 工作原理 1 5 Helm2与Helm3区别 二 Helm部署 三 Helm常用命令 3 1 chart仓库管理 3
  • 记5.28大促压测的性能优化—线程池相关问题

    目录 1 环境介绍 2 症状 3 诊断 4 结论 5 解决 6 对比java实现 废话就不多说了 本文分享下博主在5 28大促压测期间解决的一个性能问题 觉得这个还是比较有意思的 值得总结拿出来分享下 博主所服务的部门是作为公共业务平台 公
  • 【100天精通python】Day8:数据结构_元组Tuple的创建、删除、访问、修改、推导系列操作

    目录 1 创建元组 2 删除元组 3 访问元组元素 4 多个值的同时赋值和交换 5 修改元组元素 6 元组推导式 7 元组运算符 8 元组常用场景 9 元组 Tuple 和列表 List 的区别 元组 tuple 是 Python 中的一种
  • mysql创建表

    http www cnblogs com yunf archive 2011 04 20 2022193 html 说明 此文件包含了blog数据库中建立所有的表的Mysql语句 在sql语句中注意 约束的概念 1 实体完整性约束 主键 唯
  • 链栈的基本操作

    define CRT SECURE NO WARNINGS 链栈 include
  • bert下albert_chinese_small实现文本分类

    import torch from transformers import BertTokenizer BertModel BertConfig import numpy as np from torch utils import data
  • echarts设置时间轴timeline的长度

    使用timeline的 left right属性 设置时间轴距离左边和右边的距离即可
  • 用struts框架+正则表达式对数据进行校验

    创建文件名为XXX xxx validation xml XXX为Action类名 xxx为struct xml中对应的action配置的name名 并和该类放在同一个包中 校验文件部分代码如下 非字段型校验器
  • cesium 实现中文搜索定位

    cesium 实现根据中文搜索定位 天了噜 修改一下哦 高德地图获取的经纬度需要转一下哦 它是由偏移的啦 不是标准gps坐标 有接口 自行翻阅API 思路 利用高德的中文定位搜索获取选中定位的经纬度 cesium进行3D锚点定位 准备 申请
  • C语言 递归——n皇后

    递归算法 递归 递归的作用 n皇后 题目 代码 结果 递归 一个函数自己调用自己 递归和普通函数调用一样都是用栈来实现的 递归的作用 代替多重循环 将问题分解为规模更小的子问题再求解 解决本来就是用递归形式定义的问题 n皇后 题目 输入整数
  • 使用TortoiseGit操作分支的创建与合并

    第一步 创建本地分支 点击右键选择TortoiseGit 选择Create Branch 在Branch框中填写新分支的名称 若选中 switch to new branch 则直接转到新分支上 省去第二步 点击OK按钮 第二步 通过 Sw
  • 近阶段学习总结

    工作日志 要养成写工作日志的习惯 记录下每天的学习情况 包括新学的知识和每天的收获 要对每天新学的知识加以总结 让每一天的时间不至于白费 一定要总结 当天学到的新的知识点 尤其要反复更新和学习 才能举一反三 要专注于自己的事情 不要为外界的
  • 关于在使用Exchange2003系统时无法向sina,yahoo,hotmail等邮箱发送邮件问题的解决方法...

    先说普通的解决方法 转发 如果这些方法您已经用过还没有解决问题 请看本文章最后部分 该问题是由于反垃圾邮件软件引起的 已经和sina 确认过 他们最近部署了一套反垃圾邮件的系统在默认条件下 邮件服务器在发出helo命令与远端的邮件服务器通过
  • Nginx二级域名代理二级目录

    背景 今天做私单遇到一个很棘手的问题 甲方购买的是阿里云虚拟主机 众所周知虚拟主机虽然能绑定多个域名 但是只能指定一个根目录 也就是所有域名的访问都是指向到根目录 一共是开发了PC端 WAP端 管理端三个段 都要部署上去 用的vue cli