Php Pimcore多语言站点静态路由

Php Pimcore多语言站点静态路由,php,zend-framework,routing,pimcore,Php,Zend Framework,Routing,Pimcore,我最近刚开始在我的工作中与Pimcore合作,现在我正在一个由三种语言组成的项目中,每种语言都在各自的树中 今天,网站的URL是my-site.com/LANGUAGE/sub-page 例如:my-site.com/se/about 但我们想要的是LANGUAGE.my-site.com/sub-page。 例如:se.my-site.com/about 我尝试过使用静态路由工具,但根本无法让它工作,我对pimcore的了解也有点有限。我在静态路由()上找到了Pimcore文档,但我觉得它没有

我最近刚开始在我的工作中与Pimcore合作,现在我正在一个由三种语言组成的项目中,每种语言都在各自的树中

今天,网站的URL是my-site.com/LANGUAGE/sub-page 例如:my-site.com/se/about

但我们想要的是LANGUAGE.my-site.com/sub-page。 例如:se.my-site.com/about

我尝试过使用静态路由工具,但根本无法让它工作,我对pimcore的了解也有点有限。我在静态路由()上找到了Pimcore文档,但我觉得它没有多大帮助

我需要一个控制器和一个操作来处理这个问题吗。或者可以简单地使用静态路由工具来完成吗

编辑: 我试着从你右键点击一个站点开始使用“域工具”。但这只有在我通过将127.0.0.1设置为连接到us.MYSITE.com来更改计算机的hosts文件时才起作用。当网站上线时,这不是一个问题吗?因为用户没有我的主机文件。 这就是我选择静态路线的原因。

Pimcore中有一个“站点”功能,可以让你做到这一点

描述了如何设置,但我将很快解释:

您基本上是这样设置文档树的,为每种语言创建一个常用文档:

在此之后,您只需通过右键单击并单击“用作站点”将这些文档更改为“站点”(从文档中拍摄的图片):

如您所见,弹出窗口现在为您提供了一个字段,您可以在其中添加和编辑新域名以及子域。根据您使用的Pimcore版本的不同,这看起来可能有点不同,文档中显示的是旧版本

这可能是您在创建站点后,右键单击该站点并转到“编辑站点”后在较新版本中看到的内容:

这提供了一种更好的方式来管理域和其他域,您不必通过编辑逗号分隔的列表来添加其他域,现在textarea中的每一行都类似于一个域。因此,您需要做的是输入您的语言子域作为主域

站点现在的行为与文档根目录下的“主页”站点完全相同,站点功能的行为与您将设置的静态路由类似

现在您还需要做的是设置服务器,将子域路由到pimcore文件夹。正如您所提到的,主机文件不会有问题,因为它们存储在服务器上,用户不需要这些文件,因此使用“站点”功能肯定是通过静态路由工具解决此问题的方法。

Pimcore中有“站点”功能,可以让您这样做

描述了如何设置,但我将很快解释:

您基本上是这样设置文档树的,为每种语言创建一个常用文档:

在此之后,您只需通过右键单击并单击“用作站点”将这些文档更改为“站点”(从文档中拍摄的图片):

如您所见,弹出窗口现在为您提供了一个字段,您可以在其中添加和编辑新域名以及子域。根据您使用的Pimcore版本的不同,这看起来可能有点不同,文档中显示的是旧版本

这可能是您在创建站点后,右键单击该站点并转到“编辑站点”后在较新版本中看到的内容:

这提供了一种更好的方式来管理域和其他域,您不必通过编辑逗号分隔的列表来添加其他域,现在textarea中的每一行都类似于一个域。因此,您需要做的是输入您的语言子域作为主域

站点现在的行为与文档根目录下的“主页”站点完全相同,站点功能的行为与您将设置的静态路由类似


现在您还需要做的是设置服务器,将子域路由到pimcore文件夹。正如您所提到的,主机文件不会有问题,因为它们存储在服务器上,用户不需要这些文件,所以使用“站点”-通过静态路由工具,功能无疑是解决此问题的方法。

多语言网站的常见方法是为每种语言创建单独的文档树,并设置内容主文档(称为功能)。然后,对于每种附加语言,您可以创建“站点”并设置不同的子域

- home (main launguage, main domain)
  - subpage_1
  - subpage_2
  - de (site = de.example.com)
    - subpage_1 (master-document = /home/subpage_1)
    - subpage_2 (master-document = /home/subpage_2)

多语言站点的常见方法是为每种语言创建单独的文档树,并设置内容主文档(称为功能)。然后,对于每种附加语言,您可以创建“站点”并设置不同的子域

- home (main launguage, main domain)
  - subpage_1
  - subpage_2
  - de (site = de.example.com)
    - subpage_1 (master-document = /home/subpage_1)
    - subpage_2 (master-document = /home/subpage_2)

我写了一个答案,但删除了它,因为我不确定它是否完全符合您的要求。你想为不同的内容创建不同的文档树,还是仅仅通过使用子域为一个文档树设置正确的语言?我可能解释得不好。我的站点设置有一个根节点,它有三个子站点,每种语言一个子站点。因此,每种语言都是独立的树。这一切都有效。问题是,我不希望URL是ROOT/LANGUAGE/Sub-page,而是希望它是LANGUAGE.ROOT/Sub-page,例如:us.MYPAGE.com/about而不是MYPAGE.com/us/about请参阅原始帖子中的编辑。评论限制。好的,我取消了我的答案,然后,“站点”功能就是你想要的方式,你需要做的就是在服务器上为你的子域创建一个正确的主机文件。用户不需要这些文件,因为它们只对正确处理传入请求很重要。我想您当前的设置是本地的?我写了一个答案,但删除了它,因为我不确定它是否完全符合您的要求。您希望不同的内容有不同的文档树,还是这仅仅是为了设置正确的文档树