diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 3a9f533e..1bc15156 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -195,12 +195,12 @@ $routes->group('@(:podcastHandle)', static function ($routes): void { }); // audio routes -$routes->head('audio/@(:podcastHandle)/(:slug)', 'EpisodeController::audio/$1/$2', [ +$routes->head('audio/@(:podcastHandle)/(:slug).(:alphanum)', 'EpisodeController::audio/$1/$2', [ 'as' => 'episode-audio', -],); -$routes->get('audio/@(:podcastHandle)/(:slug)', 'EpisodeController::audio/$1/$2', [ +], ); +$routes->get('audio/@(:podcastHandle)/(:slug).(:alphanum)', 'EpisodeController::audio/$1/$2', [ 'as' => 'episode-audio', -],); +], ); // Other pages $routes->get('/credits', 'CreditsController', [ diff --git a/app/Entities/Episode.php b/app/Entities/Episode.php index ffe0b33e..12c20281 100644 --- a/app/Entities/Episode.php +++ b/app/Entities/Episode.php @@ -337,7 +337,7 @@ class Episode extends Entity public function getAudioUrl(): string { - return url_to('episode-audio', $this->getPodcast()->handle, $this->slug); + return url_to('episode-audio', $this->getPodcast()->handle, $this->slug, $this->getAudio()->file_extension); } public function getAudioWebUrl(): string diff --git a/modules/Analytics/Controllers/EpisodeAnalyticsController.php b/modules/Analytics/Controllers/EpisodeAnalyticsController.php index b5ee229c..cd79668e 100644 --- a/modules/Analytics/Controllers/EpisodeAnalyticsController.php +++ b/modules/Analytics/Controllers/EpisodeAnalyticsController.php @@ -72,6 +72,9 @@ class EpisodeAnalyticsController extends Controller throw PageNotFoundException::forPageNotFound(); } - return redirect()->route('episode-audio', [$episode->podcast->handle, $episode->slug]); + return redirect()->route( + 'episode-audio', + [$episode->podcast->handle, $episode->slug, $episode->audio->file_extension] + ); } }