|
|
@@ -0,0 +1,45 @@
|
|
|
+<?php
|
|
|
+declare(strict_types = 1);
|
|
|
+namespace Opentalent\OtCore\Middleware\Frontend;
|
|
|
+
|
|
|
+use TYPO3\CMS\Core\Http\Response;
|
|
|
+use Psr\Http\Message\ResponseInterface;
|
|
|
+use Psr\Http\Message\ServerRequestInterface;
|
|
|
+use Psr\Http\Server\MiddlewareInterface;
|
|
|
+use Psr\Http\Server\RequestHandlerInterface;
|
|
|
+
|
|
|
+/**
|
|
|
+ * Redirect sitemap requests
|
|
|
+ * @see https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Seo/XmlSitemap.html
|
|
|
+ */
|
|
|
+class OtSitemapProvider implements MiddlewareInterface
|
|
|
+{
|
|
|
+ /**
|
|
|
+ * Resolve the site/language information by checking the page ID or the URL.
|
|
|
+ *
|
|
|
+ * @param ServerRequestInterface $request
|
|
|
+ * @param RequestHandlerInterface $handler
|
|
|
+ * @return ResponseInterface
|
|
|
+ */
|
|
|
+ public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
|
|
|
+ {
|
|
|
+ $path = $request->getUri()->getPath();
|
|
|
+ $devMode = ($_SERVER['TYPO3_CONTEXT'] ?? '') == "Development";
|
|
|
+
|
|
|
+ $isSitemapRequest = $devMode ?
|
|
|
+ preg_match("/[a-z0-9-]+\/sitemap\.xml/", $path) :
|
|
|
+ $path === 'sitemap.xml';
|
|
|
+
|
|
|
+ if ($isSitemapRequest) {
|
|
|
+ $path = $devMode ? substr($request->getUri()->getPath(), 0, -strlen('/sitemap.xml')) : '';
|
|
|
+
|
|
|
+ $url = $path . '/?type=1533906435';
|
|
|
+ $response = new Response();
|
|
|
+ return $response
|
|
|
+ ->withStatus(301) // ou 302 pour une redirection temporaire
|
|
|
+ ->withHeader('Location', $url);
|
|
|
+ }
|
|
|
+
|
|
|
+ return $handler->handle($request);
|
|
|
+ }
|
|
|
+}
|