我有3个域名设置:mydomain.com,mydomain-staging.com和mydomain-dev.com
我使用angularJS应用程序注册新用户,将注册详细信息发送到FOSUserBundle(我使用的是Symfony2 RESTful api)。
除了FOSUserBundle设置的电子邮件中的确认链接(例如)http://api.mydomain-staging.com/register/confirm/[token]之外,所有内容都有效。我认为它将子域设置为api,因为这是请求来自的地方。
我正在尝试编辑registration.xml,因此我可以将注册网址的路由设置为始终用于网站子域" admin"相反" api"例如http://admin.mydomain-staging.com/register/confirm/[token]
我希望将实际域放入parameters.yml,因为该文件是在每台服务器上创建的。然后参考xml中的参数。
这是我最近的尝试,但它在所有3台服务器上都提供了网址http://admin.mydomain.com/register/confirm/[token],而不是从paramters.yml获取域名
MyUserBundle /资源/配置/路由/ registration.xml
...
<route id="fos_user_registration_confirm" pattern="/confirm/{token}" host="admin.{_domain}">
<default key="_controller">FOSUserBundle:Registration:confirm</default>
<requirement key="_method">GET</requirement>
<requirement key="_domain">%app.domain%</requirement>
<default key="_domain">mydomain.com</default>
</route>
...
应用程序/配置/ config.yml
...
parameters:
app.domain: "%app_domain%"
...
应用程序/配置/ paramters.yml
...
app_domain: mydomain-staging.com
...
编辑: 我也尝试过使用环境配置文件(例如config_staging.yml),但routing.xml继续使用
<default key="_domain">...</default>
值而不是转到我的配置文件。
如果我从xml中删除默认值,则会收到错误:缺少一些必需参数(\&#34; _domain \&#34;)以生成路由的URL \&#34; fos_user_registration_confirm \&#34 ;
答案 0 :(得分:0)
我认为你可以通过创建包含3个前置控制器(web/app_stage.php
,config.yml
,config_dev.yml
)的3个环境来配置3个配置文件(config_stage.yml
,{{1配置文件中的{}和app_domain
覆盖适合您服务器的参数#include <vector>
using namespace std;
int main() {
vector<int> a,b;
a.assign(10,0);
b.assign(10,1);
for (auto c : a && auto d : b)
// ....
。
有关详细信息,请参阅Symfony Environments。
答案 1 :(得分:0)
问题是我正在使用的xml。我应该在默认情况下使用变量,而不是要求。像这样:
<route id="fos_user_registration_confirm" pattern="/confirm/{token}" host="admin.{_domain}">
<default key="_controller">FOSUserBundle:Registration:confirm</default>
<requirement key="_method">GET</requirement>
<default key="_domain">%app.domain%</default>
</route>