/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { // Only redirect on GETs. if (strtoupper($request->method()) == 'GET') { // If we have a request from a bot, send them a custom, social-sharing- // friendly version of the website. foreach ($this->botAgents as $pattern) { if (preg_match($pattern, $request->header('User-Agent'))) { // Add the social/ prefix on the requested url. $dupRequest = $request->duplicate(); $dupRequest->server->set('REQUEST_URI', 'social/' . $request->path()); return $next($dupRequest); } } } return $next($request); }
/** * Clones a request and overrides some of its parameters. * * @param array $query The GET parameters * @param array $request The POST parameters * @param array $attributes The request attributes (parameters parsed from the PATH_INFO, ...) * @param array $cookies The COOKIE parameters * @param array $files The FILES parameters * @param array $server The SERVER parameters * @return \Symfony\Component\HttpFoundation\Request The duplicated request * @static */ public static function duplicate($query = null, $request = null, $attributes = null, $cookies = null, $files = null, $server = null) { return \Illuminate\Http\Request::duplicate($query, $request, $attributes, $cookies, $files, $server); }
/** * Clones a request and overrides some of its parameters. * * @param array $query The GET parameters * @param array $request The POST parameters * @param array $attributes The request attributes (parameters parsed from the PATH_INFO, ...) * @param array $cookies The COOKIE parameters * @param array $files The FILES parameters * @param array $server The SERVER parameters * @return \Symfony\Component\HttpFoundation\Request The duplicated request * @api * @static */ public static function duplicate($query = null, $request = null, $attributes = null, $cookies = null, $files = null, $server = null) { //Method inherited from \Symfony\Component\HttpFoundation\Request return \Illuminate\Http\Request::duplicate($query, $request, $attributes, $cookies, $files, $server); }