File tree Expand file tree Collapse file tree 3 files changed +15
-14
lines changed
server/services/link-redirection Expand file tree Collapse file tree 3 files changed +15
-14
lines changed Original file line number Diff line number Diff line change 1+ const linkRedirects = require ( '../../../server/services/link-redirection' ) ;
2+
3+ module . exports = function handleRedirects ( siteApp ) {
4+ siteApp . get ( linkRedirects . service . redirectPrefix ( ) + '*' , linkRedirects . service . handleRequest ) ;
5+ } ;
Original file line number Diff line number Diff line change @@ -15,7 +15,7 @@ const themeMiddleware = themeEngine.middleware;
1515const membersService = require ( '../../server/services/members' ) ;
1616const offersService = require ( '../../server/services/offers' ) ;
1717const customRedirects = require ( '../../server/services/custom-redirects' ) ;
18- const linkRedirects = require ( '../../server/ services/link-redirection ' ) ;
18+ const linkRedirectsHandler = require ( '../services/link-redirects ' ) ;
1919const { cardAssets} = require ( '../services/assets-minification' ) ;
2020const siteRoutes = require ( './routes' ) ;
2121const shared = require ( '../../server/web/shared' ) ;
@@ -51,7 +51,7 @@ module.exports = function setupSiteApp(routerConfig) {
5151
5252 siteApp . use ( offersService . middleware ) ;
5353
54- siteApp . use ( linkRedirects . service . handleRequest ) ;
54+ linkRedirectsHandler ( siteApp ) ;
5555
5656 // you can extend Ghost with a custom redirects file
5757 // see https://github.com/TryGhost/Ghost/issues/7707
Original file line number Diff line number Diff line change @@ -77,6 +77,14 @@ class LinkRedirectsService {
7777 return link ;
7878 }
7979
80+ /**
81+ * @return {string }
82+ **/
83+ redirectPrefix ( ) {
84+ const fullURLWithRedirectPrefix = `${ this . #baseURL. pathname } ${ this . #redirectURLPrefix} ` ;
85+ return fullURLWithRedirectPrefix ;
86+ }
87+
8088 /**
8189 * @param {import('express').Request } req
8290 * @param {import('express').Response } res
@@ -86,18 +94,6 @@ class LinkRedirectsService {
8694 */
8795 async handleRequest ( req , res , next ) {
8896 try {
89- // skip handling if original url doesn't match the prefix
90- const fullURLWithRedirectPrefix = `${ this . #baseURL. pathname } ${ this . #redirectURLPrefix} ` ;
91- // @NOTE : below is equivalent to doing:
92- // router.get('/r/'), (req, res) ...
93- // To make it cleaner we should rework it to:
94- // linkRedirects.service.handleRequest(router);
95- // and mount routes on top like for example sitemapHandler does
96- // Cleanup issue: https://github.com/TryGhost/Toolbox/issues/516
97- if ( ! req . originalUrl . startsWith ( fullURLWithRedirectPrefix ) ) {
98- return next ( ) ;
99- }
100-
10197 const url = new URL ( req . originalUrl , this . #baseURL) ;
10298 const link = await this . #linkRedirectRepository. getByURL ( url ) ;
10399
You can’t perform that action at this time.
0 commit comments