示例#1
0
 /**
  * Using the configuration value, determines whether we need to redirect to a URL with
  * a trailing slash or not.
  *
  * @return \Concrete\Core\Routing\RedirectResponse
  */
 public function handleURLSlashes(SymfonyRequest $request)
 {
     $trailing_slashes = $this['config']['concrete.seo.trailing_slash'];
     $path = $request->getPathInfo();
     // If this isn't the homepage
     if ($path && $path != '/') {
         // If the trailing slash doesn't match the config, return a redirect response
         if ($trailing_slashes && substr($path, -1) != '/' || !$trailing_slashes && substr($path, -1) == '/') {
             $parsed_url = Url::createFromUrl($request->getUri(), $trailing_slashes ? Url::TRAILING_SLASHES_ENABLED : Url::TRAILING_SLASHES_DISABLED);
             $response = new RedirectResponse($parsed_url, 301);
             $response->setRequest($request);
             return $response;
         }
     }
 }
示例#2
0
 /**
  * Using the configuration value, determines whether we need to redirect to a URL with
  * a trailing slash or not.
  *
  * @return \Concrete\Core\Routing\RedirectResponse
  */
 public function handleURLSlashes(SymfonyRequest $request)
 {
     $request_path = $request->getRequestUri();
     $parsed_url = Url::createFromUrl($request->getUri());
     $url_path = ltrim(parse_url($request_path, PHP_URL_PATH), '/');
     if ($url_path != (string) $parsed_url->getPath()) {
         $response = new RedirectResponse($parsed_url, 301);
         $response->setRequest($request);
         return $response;
     }
 }
 /** 
  * Actually sends a redirect
  */
 protected static function createRedirectResponse($url, $code, $headers)
 {
     $r = new RedirectResponse($url, $code, $headers);
     $r->setRequest(Request::getInstance());
     return $r;
 }
示例#4
0
 /**
  * Using the configuration value, determines whether we need to redirect to a URL with
  * a trailing slash or not.
  *
  * @return \Concrete\Core\Routing\RedirectResponse
  */
 public function handleURLSlashes(SymfonyRequest $request)
 {
     $url = Url::createFromUrl($request->getUri());
     if ($request->getPathInfo() != '/') {
         if (urldecode((string) $url) != urldecode($request->getUri())) {
             $response = new RedirectResponse((string) $url, 301);
             $response->setRequest($request);
             return $response;
         }
     }
 }
示例#5
0
 /**
  * Using the configuration value, determines whether we need to redirect to a URL with
  * a trailing slash or not.
  *
  * @return \Concrete\Core\Routing\RedirectResponse
  */
 public function handleURLSlashes(SymfonyRequest $request)
 {
     $parsedUrl = (string) Url::createFromUrl($request->getUri());
     if ($request->getPathInfo() != '/') {
         $parsedUrlWithoutQueryString = strstr($parsedUrl, '?', true) ?: $parsedUrl;
         $requestUrl = $request->getUri();
         $requestUrlWithoutQueryString = strstr($requestUrl, '?', true) ?: $requestUrl;
         if (urldecode($parsedUrlWithoutQueryString) != urldecode($requestUrlWithoutQueryString)) {
             $response = new RedirectResponse($parsedUrl, 301);
             $response->setRequest($request);
             return $response;
         }
     }
 }
示例#6
0
 public function setRequest(Concrete\Core\Http\Request $r)
 {
     return parent::setRequest($r);
 }