同一个Symfony应用程序上的多个域

Jul*_*ent 3 apache .htaccess symfony


经过几个小时的研究,我仍然找不到答案,但我确信有办法解决它.
我有一个Symfony应用程序,其中包含我的客户的网站.
路由如下:/app.php/{userId}/
我想创建域(不是子域)以指向每个用户页面,所以
domain1.com - > app.php/1/
domain2.com - > app.php/2/
etc ...
但是当我尝试使用Apache主机时,我收到一个Symfony错误:"找不到GET /的路由".我理解为什么,但我无法找到Apache主机或htaccess的解决方案,而不是Symfony.
我不想复制我的app.php或app文件夹.
也许解决方案是在htaccess ...
你怎么看待它?
提前感谢您的想法:)

Julien

joh*_*ith 7

对于每个主机名,您可以在simfony应用程序中设置一个虚拟主机,其文档根目录如下:

<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>
Run Code Online (Sandbox Code Playgroud)

与ServerAlias一样,您也可以将一个具有多个主机名的VirtualHost标记作为ServerAlias

  ServerName domainone.com
  ServerAlias domainone.com domaintwo.com
Run Code Online (Sandbox Code Playgroud)

在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"
Run Code Online (Sandbox Code Playgroud)

  • 您只能使用一个VirtualHost和一个或多个[ServerAlias](http://httpd.apache.org/docs/2.2/mod/core.html#severalias). (2认同)