将子域重定向到 CakePHP 操作

2024-05-09

背景

我有一个 CakePHP 应用程序,位于/m/。我想写一个根级别的.htaccess文件,它将重定向网站的“子域”作为操作的参数。

例如:我想编写一个重写规则,这将导致像这样的重定向 -

  • http://mysite.myserver.comhttp://myserver.com/m/mysite/
  • http://mysite.myserver.com/homehttp://myserver.com/m/mysite/home
  • http://mysite.myserver.com/foo/bar?baz=truehttp://myserver.com/m/mysite/foo/bar?baz=true

理想情况下,此重定向应该对用户不可见(我不想使用 301,因为我不想更改 URL)。

这是我当前的尝试:

<IfModule mod_rewrite.c>
  Options +FollowSymLinks
  RewriteEngine on
  RewriteCond %{HTTP_HOST} ^(.*)\.myserver\.com$ [NC]
  RewriteRule ^(.*)$ http://myserver.com/m/%1/$1 [L]
</IfModule>

据我所知,主要问题在于$_SERVER['REQUEST_URI']:

  • 如果我浏览到http://myserver.com/m/mysite/home直接地,$_SERVER['REQUEST_URI'] = /m/mysite/home.
  • 如果我浏览到http://mysite.myserver.com/home使用.htaccess上面的文件,$_SERVER['REQUEST_URI'] = /home.

问题

由于以下问题$_SERVER['REQUEST_URI'],我的路线无法正确解析:它试图将用户带到/home而不是/m/mysite/home如预期的。

如何更改重写规则以使其正常工作?还有其他方法可以实现此目的吗?


您所要求的(更改 URL 中的域名但不让浏览器看到 URL 更改)在正常情况下是无法实现的。然而,为了使它成为可能,你有enable mod_proxy在您的 Apache 中并重新启动它。完成后,在站点根目录 .htaccess 中使用以下代码:

RewriteCond %{HTTP_HOST} ^([^.]+)\.myserver\.com$ [NC]
RewriteRule !^m/ http://myserver.com/m/sites/%1%{REQUEST_URI} [NC,L,P]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将子域重定向到 CakePHP 操作 的相关文章

随机推荐

  • 将多个图像添加到 Word 文档的特定位置 OpenXML

    我正在使用 Office Open XML 并且必须在特定点添加图像 在文档上我有一个 标签 这样我就可以很好地找到它 但是 当我添加多个图像时 它会损坏文件 这是我的代码 修改自https msdn microsoft com en us
  • 如何设置K-means openCV c++的初始中心

    我正在尝试使用 OpenCv 和 Kmeans 对图像进行分割 我刚刚实现的代码如下 include opencv2 objdetect objdetect hpp include opencv2 highgui highgui hpp i
  • 方案中的多维向量?

    我之前问过一个关于方案中数组的问题 结果它们被称为向量 但在其他方面基本上与您期望的相同 有没有一种简单的方法可以在 PLT 方案中处理多维 arrays 向量 出于我的目的 我想要一个名为make multid vector或者其他的东西
  • 将列添加到 ASP.NET Identity 中的 AspNetUserClaims

    我在用着Microsoft AspNet Identity Core 2 2 1在我的解决方案中 我需要将其与另一个应自动添加声明的系统集成 为了跟踪哪些声明是手动添加的以及哪些是由外部系统创建的 我希望在我的AspNetUserClaim
  • 从 PHP 执行 SQL Server 存储过程

    我尝试从 PHP 调用 SQL Server 存储过程 这是我的存储过程 CREATE procedure dbo tester id NVARCHAR MAX AS BEGIN DECLARE tab TABLE myxml XML IN
  • 导入错误:无法导入名称“IntEnum”

    我正在尝试安装upstox 这是一个用于连接市场数据的 Python API 我无法在Python3 5上安装它 我的配置是Python 3 5 3 v3 5 3 1880cb95a742 Jan 16 2017 15 51 26 MSC
  • 我在 JIRA 中评论的问题

    根据 JIRA 文档http www atlassian com software jira docs latest http www atlassian com software jira docs latest 以下过滤器将显示我 当前
  • 有没有办法将 JSON 模式转换为 XSD? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我目前正在寻找一种将 JSON 架构转换为 XSD 或 XML 架构的方法 我没有找到任何关于这个主题
  • 将 spring boot 应用导入到另一个项目中

    因此 我尝试在另一个项目 测试框架 中添加一个 spring boot 可执行 jar 作为依赖项 但是一旦添加到 pom 并导入 Java 导入无法正常工作 如果我查看 jar 内部 所有包都带有以下前缀 BOOT INF classes
  • 当 Jupyter 单元包含函数、循环或其他块时,是否可以将其拆分为多个单元?

    Jupyter 的一项功能是能够一次执行一个单元 如果一个单元格有很多语句 通常可以 希望 将其拆分为更小的单语句单元格 除非涉及块 例如 if for def 等 这个问题之前以不同的方式提出过 在Jupyter中逐步执行算法 https
  • 使用Retrofit获取base64图像错误com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:

    我正在尝试从经过身份验证的网站下载图像 该网站返回图像的 Base64 版本 这是改造的正确方法吗 如何获取图像并将其设置为我的图像视图 GET img avatars id public void getProfilePic Path i
  • 如何在 Eclipse 中使用正则表达式将大写字母替换为小写字母?

    我想检查所有源代码文件并替换所有出现的k Xyyy with k xyyy 交换后面的第一个字母k 从大写到小写 我正在使用 Eclipse 对话框来搜索和替换多个文件 现在我有正则表达式 bk A Z 如何指定正则表达式的替换字符串 我刚
  • 从 SQLite 迁移到 Android Room 持久性库

    我有一个正在使用的应用程序SQLite数据库 我正在尝试替换AndroidSQLite with Android Room API 我已经创建了 DAO 类 实体类和 DB 但是在执行数据库查询时Async任务我收到以下错误 引起原因 ja
  • GDI+ 中绘图坐标的硬界限是什么?

    我这样渲染插值曲线 e Graphics DrawLines new Pen Color Red interpolationPoints ToArray 有时会抛出 OverflowException 对 interpolationPoin
  • Tensorflow 的 LSTM 输入

    I m trying to create an LSTM network in Tensorflow and I m lost in terminology basics I have n time series examples so X
  • Xamarin 没有安装的配置文件与安装的 iOS 签名身份匹配

    我想知道是否可以在 ios 设备上编译 Xamarin 应用程序 使用 Visual Studio for mac 而无需成为开发人员 费用为 99 美元 年 因为当我尝试在 iPhone 上构建项目时出现此错误 Xamarin iOS C
  • 如何将“全选”选项添加到 jqGrid 选择工具栏过滤器?

    我正在使用 jqGrid 和过滤器工具栏构建表格 以便用户过滤表中显示的行 如果我使用文本作为搜索类型 这一切都很好 但对于某些列 我想使用选择列表以使用户更容易根据列中的值进行过滤 我可以将列类型设置为 选择 并使用表中的值填充选项 一切
  • 单击链接时启动本地应用程序

    我正在开发一个内部 Web 应用程序 它允许我为客户存储远程控制凭据 每次我想要连接到客户计算机时 我都需要启动远程支持软件 复制并粘贴用户名和密码 然后单击 开始 按钮 该软件将具有可用的命令行参数 允许我立即启动会话 但是 我不知道如何
  • 在 m4 中,如何包含名称中包含环境变量的文件?

    我想在 m4 文本中包含一个相对于我的沙箱基目录的文件 而不使用 I switch 到目前为止 我已经弄清楚如何使用系统调用来获取环境变量 define MODEL ROOT syscmd printf MODEL ROOT dnl 接下来
  • 将子域重定向到 CakePHP 操作

    背景 我有一个 CakePHP 应用程序 位于 m 我想写一个根级别的 htaccess文件 它将重定向网站的 子域 作为操作的参数 例如 我想编写一个重写规则 这将导致像这样的重定向 http mysite myserver com ht