同一个Symfony应用中有多个域名

3
经过数小时的研究,我仍然找不到答案,但我确信有一种方法可以解决它。
我有一个Symfony应用程序,其中包含我的客户网站。
路由如下:/app.php/{userId}/
我想创建域名(而不是子域名)指向每个用户页面,因此
domain1.com-> app.php/1/
domain2.com-> app.php/2/
等等...
但是,当我尝试使用Apache hosts进行操作时,我会收到Symfony错误:“未找到GET /的路由”。我知道为什么,但我找不到Apache hosts或htaccess以及Symfony的解决方案。
我不想复制我的app.php或app文件夹。
也许解决方案在htaccess中...
您认为呢?
非常感谢您的想法 :)

朱利安
1个回答

9

你可以为每个主机名设置一个虚拟主机,将其文档根目录设置为你的Symfony应用程序,例如:

<VirtualHost *:80>
  ServerName domainone.com
  DocumentRoot "/Projects/Project/web"
  <Directory "/Projects/Project/web">
    Options Indexes FollowSymLinks
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>
<VirtualHost *:80>
  ServerName domaintwo.com
  DocumentRoot "/Projects/Project/web"
  <Directory "/Projects/Project/web">
    Options Indexes FollowSymLinks
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

像ServerAlias所说的那样,您也可以使用一个VirtualHost标签来配置多个主机名,就像ServerAlias一样。
  ServerName domainone.com
  ServerAlias domainone.com domaintwo.com

在您的Symfony路由配置中,您可以解析主机名。
routing_one:
    resource: "@yourBundle/Resources/config/routingOne.yml"
    prefix: /customerIdOne
    host: "domainone.com"

routing_two:
    resource: "@yourBundle/Resources/config/routingTwo.yml"
    prefix: /customerIdTwo
    host: "domaintwo.com"

2
你可以只使用一个 VirtualHost 和一个或多个 ServerAlias。 - tetranz
谢谢,它起作用了!Regan Lawton 在推特上也告诉了我相同的事情。http://t.co/p5RKo9Yqwx - Julien Ferment

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接