我正在开发一个高流量/高搜索引擎优化的网络。现在我们只是在动作开始时进行重定向,但它有点慢。
有没有办法在路由之前挂钩并在那里进行重定向(我们已经进行了 Redis 查询以了解 URL 是否为 301)?也许在Symfony之前就这样做了。
我正在开发一个高流量/高搜索引擎优化的网络。现在我们只是在动作开始时进行重定向,但它有点慢。
有没有办法在路由之前挂钩并在那里进行重定向(我们已经进行了 Redis 查询以了解 URL 是否为 301)?也许在Symfony之前就这样做了。
当然可以,创建一个优先级高于 32 的侦听器(这是路由器侦听器的优先级),然后从那里重定向:
$response = new RedirectResponse($url);
$event->setResponse($response);
您确实需要提供更多信息,我看到了几件事。
首先,请描述您的应用程序,有一个非常棒的工具叫做 Blackfire,它是由制造 Symfony 的同一家公司制造的。有了这个,你可以准确地找出性能瓶颈在哪里,没有它,我们只能猜测。
可能是查询花费的时间太长,如果是这样,请对其进行优化。
会不会是网络延迟?也许您有一个服务器集群,用户在其中进行 DNS 查找,访问的服务器是美国,但随后您将他重定向到不同的站点,从而导致对欧洲服务器的不同 DNS 查找或类似的东西。
最后,会不会是 Symfony 和 Php 本身?在这种情况下,我建议将您的网络服务器直接连接到 Redis,例如 Nginx 或 Varnish
https://github.com/openresty/redis2-nginx-module#readme
和