Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 19
0.00% covered (danger)
0.00%
0 / 5
CRAP
0.00% covered (danger)
0.00%
0 / 1
RedirectController
0.00% covered (danger)
0.00%
0 / 19
0.00% covered (danger)
0.00%
0 / 5
156
0.00% covered (danger)
0.00%
0 / 1
 php
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
6
 phpPhp
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
6
 underscorePhpPhp
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
6
 underscoreIndex
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
6
 underscoreFolderIndex
0.00% covered (danger)
0.00%
0 / 7
0.00% covered (danger)
0.00%
0 / 1
20
1<?php
2
3namespace Olz\Controller;
4
5use Psr\Log\LoggerInterface;
6use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
7use Symfony\Component\HttpFoundation\RedirectResponse;
8use Symfony\Component\HttpFoundation\Request;
9use Symfony\Component\HttpFoundation\Response;
10use Symfony\Component\Routing\Annotation\Route;
11
12class RedirectController extends AbstractController {
13    #[Route('/_/{file}.php')]
14    public function php(Request $request, string $file): Response {
15        $query_string = $request->getQueryString();
16        $url = $query_string ? "/{$file}.php?{$query_string}" : "/{$file}.php";
17        return new RedirectResponse($url, 308);
18    }
19
20    #[Route('/{file}.php/index.php')]
21    public function phpPhp(Request $request, string $file): Response {
22        $query_string = $request->getQueryString();
23        $url = $query_string ? "/{$file}.php?{$query_string}" : "/{$file}.php";
24        return new RedirectResponse($url, 308);
25    }
26
27    #[Route('/_/{file}.php/index.php')]
28    public function underscorePhpPhp(Request $request, string $file): Response {
29        $query_string = $request->getQueryString();
30        $url = $query_string ? "/{$file}.php?{$query_string}" : "/{$file}.php";
31        return new RedirectResponse($url, 308);
32    }
33
34    #[Route('/_/')]
35    public function underscoreIndex(
36        Request $request,
37        LoggerInterface $logger,
38    ): Response {
39        $query_string = $request->getQueryString();
40        $url = $query_string ? "/?{$query_string}" : '/';
41        return new RedirectResponse($url, 301, ['X-OLZ-Redirect' => 'underscore_index']);
42    }
43
44    #[Route('/_/{folder}/', requirements: ['folder' => '[^\.]+'])]
45    public function underscoreFolderIndex(
46        Request $request,
47        LoggerInterface $logger,
48        string $folder,
49    ): Response {
50        $query_string = $request->getQueryString();
51        $html_exists = is_file("./_/{$folder}/index.html");
52        if ($html_exists) {
53            $url = $query_string ? "/{$folder}/index.html?{$query_string}" : "/{$folder}/index.html";
54            return new RedirectResponse($url, 301, ['X-OLZ-Redirect' => 'underscore_folder_index']);
55        }
56        $url = $query_string ? "/{$folder}/index.php?{$query_string}" : "/{$folder}/index.php";
57        return new RedirectResponse($url, 301, ['X-OLZ-Redirect' => 'underscore_folder_index']);
58    }
59}