public function proxy(Request $request) { //root url / base url $root = $request->root(); //generated url if no parameters redirect to search $redirect_url = url('search'); //$root; //generated url parameters container $url_params = array(); //get incoming parameters $params = Input::all(); //print_r($params); //exit; //check for category selection $cid = 0; if (isset($params['cid']) && $params['cid'] > 0) { $cid = $params['cid']; $category_slug = $this->category->getCategoryFullPathById($cid); $url_params[] = $category_slug; unset($params['cid']); } //check for location selection $lid = 0; if (isset($params['lid']) && $params['lid'] > 0) { $lid = $params['lid']; $location_slug = $this->location->getSlugById($lid); $url_params[] = 'l-' . $location_slug; unset($params['lid']); session()->put('lid', $lid); session()->put('location_slug', $location_slug); } else { if (session()->has('lid')) { session()->forget('lid'); } if (session()->has('location_slug')) { session()->forget('location_slug'); } } //check for search text $search_text = ''; if (isset($params['search_text'])) { $search_text_tmp = Util::sanitize($params['search_text']); if (!empty($search_text_tmp) && mb_strlen($search_text_tmp, 'utf-8') > 3) { $search_text = $search_text_tmp; $search_text = preg_replace('/\\s+/', '-', $search_text); $url_params[] = 'q-' . $search_text; } unset($params['search_text']); } //generate new url for redirection if (!empty($url_params)) { $redirect_url = Util::buildUrl($url_params); } //check if there are parameters for query string $query_string = ''; if (!empty($params)) { //clear token var if exist if (isset($params['_token'])) { unset($params['_token']); } $query_string = Util::getQueryStringFromArray($params); } //add query string to generated url if (!empty($query_string)) { $redirect_url .= '?' . $query_string; } return redirect($redirect_url); }