symfony 从一个域重定向到另一个域

香蕉苹果

我有一个 Symfony 4.2 站点,它在两个子域上提供内容:

a.example.com

b.example.com

我怎样才能重定向的请求/resetting/reset/ab,同时保持查询字符串?

我尝试了下面的但它没有做任何事情 - 即当我点击a.example.com/resetting/reset它只是停留在那里。没有错误。

resetting:
    host: ^%a_domain%$
    path: ^/resetting/reset/
    controller: Symfony\Bundle\FrameworkBundle\Controller\RedirectController::urlRedirectAction
    defaults:
        path: '%b_domain%/resetting/reset/'
        permanent: true
        keepQueryParams: true

任何想法,将不胜感激!

香蕉苹果

我无法使用 yaml 方法,因此我使用自定义重定向操作覆盖了路由,如下所示:

/**
 * @Route("/resetting/reset/{token}",
 *     name="fos_user_resetting_reset_override",
 *     host="{domain}",
 *     defaults={"domain"="%a_domain%"},
 *     requirements={"domain"="(%a_domain%)"},
 * )
 */
public function redirectResettingRouteToBDomain(string $token): RedirectResponse
{
    // generate the current url with an absolute path
    $path = $this->generateUrl(
        'fos_user_resetting_reset',
        ['token' => $token],
        UrlGeneratorInterface::ABSOLUTE_PATH
    );

    // replace A_DOMAIN with B_DOMAIN in the path
    $domain = preg_replace(
        '/' . preg_quote(getenv('A_DOMAIN'), '/') . '/',
        getenv('B_DOMAIN'),
        $this->getRequest()->server->get('HTTP_HOST')
    );

    // ensure the redirect works on http and https
    $url = '//' . $domain . $path;

    return $this->redirect($url);
}

请注意,我为A_DOMAINand设置了 env vars B_DOMAIN,然后将它们作为a_domainb_domain参数使用。

本质上,上面的控制器操作仅在 上触发A_DOMAIN,覆盖 的默认fos_user_resetting_reset路由B_DOMAIN,然后重定向请求。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Symfony 3 使用 url 参数重定向到另一个路由

表单操作重定向到另一个控制器Symfony2.8

在Traefik中从一个域重定向到另一个域

Cloudflare从一个域重定向到另一个域?

从一个域永久重定向到另一个但相同的主机

使用htaccess将网址从一个域重定向到另一个域

将WordPress文章301从一个域重定向到另一个域

使用htaccess文件从一个域重定向到另一个域

firebase.json从一个域重定向到另一个域,并在/之后

从一个域重定向到另一个域,并在新的URL末尾添加.html

重定向到另一个域的 HSTS

Symfony 2.5 - 如何从一个页面捕获信息以将其显示到另一个页面中?

在symfony中将发布的值从一个控制器传递到另一个

从一个存储库到另一个存储库的 Symfony 大规模水合

Apache动态将一个域重定向到另一个域

.htaccess 将一个域重定向到另一个域

域被重定向到同一液滴中的另一个域

我们可以使用Symfony2处理表单,而无需在末尾重定向到另一个URL吗?

使 .htaccess 从一个域重定向到另一个域以用于 WWW(http://www. 和 https://www.)、HTTP 和 HTTPS

在 cloudflare 工作人员中从一个域重定向到另一个域不起作用

将旧的Wordpress永久链接站点从一个域上的子目录重定向到另一个域的根目录

将域重定向到另一个域上的特定页面(htaccess)

将域重定向到ASP.NET中的另一个域

使用参数将子域重定向到另一个域

使用dns或htaccess将子域重定向到另一个域

AWS Amplify域重定向到另一个域

整个域的 301 重定向 (.htaccess) 到另一个域索引

将一个域重定向到另一个域子目录

如何将一个域重定向到本地另一个域?