【发布时间】:2020-03-05 06:34:06
【问题描述】:
我目前正在转换一个旧网站以使用 Symfony 4,并且该网站使用 LiveZilla 实时聊天应用程序。
LiveZilla 位于网站的子文件夹中,可使用 somesite.com/livezilla 下的 URL 直接访问。我目前当然不能访问它,因为我还没有为这个文件夹配置路由。所以 Symfony 决定这将是一个 404。
LiveZilla 本质上是一个完全独立的应用程序,位于此处的自己的文件夹中。它不依赖于托管它的网站。有没有办法告诉 Symfony 忽略某些路径,这样这样的代码就可以不受干扰地执行?
我有一种偷偷摸摸的感觉,我需要调整我看待这个问题的方式,因为我在 Symfony 文档中找不到任何关于这个的明显内容,而且这个框架是经过深思熟虑的。到目前为止,我想出的最好的方法是破解 public/.htaccess,但不知何故感觉不对...
【问题讨论】:
-
如果两个网站是独立的,你真的不应该把你的旧网站放在你的 Symfony 应用程序中。相反,将您的应用程序部署在两个不同的位置并配置您的 Web 服务器来完成这项工作。例如,如果您正在运行 nginx,则可以在主网站
location内添加一个location块并将其指向您的旧网站 -
谢谢 Manu,有趣的想法。 LiveZilla 建议将他们的软件安装在使用它的站点的子目录中。最坏的情况,我猜它可以安装在(例如)子域上并从其他地方提供服务。如果我真的找不到其他方法,我会尝试。
-
我坚持认为您的 LiveZilla 应用程序应该存在于您的 SF 应用程序之外(为什么第三方独立应用程序应该成为您的资源的一部分?),如果您想这样做,您可以获得它通过将您的 LiveZilla 应用程序放在
public/文件夹中来工作,是的,正如您所提到的,要么向您的 SF 应用程序.htaccess添加规则(例如RewriteRule ^livezilla/(.*)$ livezilla/$1 [L]),要么正确地重新配置您的虚拟主机。我认为应该首选第二个选项。 -
听起来像个计划!我会试试的,谢谢 Manu
-
实施了以下建议,但还将 LiveZilla 文件添加到单独的存储库中。现在一切都好,感谢您的意见:)
标签: php symfony symfony4 livechat