@@ -28,7 +28,7 @@ export const buildUrlScanResult = (
2828 const redirectChain = response . request ( ) . redirectChain ( ) ;
2929 const finalUrl = getFinalUrl ( page ) ;
3030 return {
31- targetUrlRedirects : isRedirect ( url , finalUrl ) ,
31+ targetUrlRedirects : isRedirect ( url , finalUrl , logger ) ,
3232 finalUrl : finalUrl ,
3333 finalUrlWebsite : getWithSubdomain ( finalUrl ) ,
3434 finalUrlTopLevelDomain : getTopLevelDomain ( finalUrl ) ,
@@ -50,13 +50,27 @@ const getFinalUrl = (page: Page) => {
5050 return finalUrl ;
5151} ;
5252
53- function stripWww ( url : string ) : string {
54- return url . replace ( / ^ w w w \. / , '' ) ;
55- } ;
53+ function cleanUrl ( url : string ) : string {
54+ // Remove the protocol (http:// or https://)
55+ url = url . replace ( / ^ h t t p s ? : \/ \/ / , '' ) ;
56+
57+ // Remove 'www.' if it exists
58+ url = url . replace ( / ^ w w w \. / , '' ) ;
59+
60+ // Remove trailing slashes
61+ url = url . replace ( / \/ $ / , '' ) ;
62+
63+ return url ;
64+ }
5665
57- function isRedirect ( initialUrl : string , finalUrl : string ) : boolean {
66+ function isRedirect ( initialUrl : string , finalUrl : string , logger : Logger ) : boolean {
5867 if ( ! initialUrl || ! finalUrl ) {
68+ logger . warn ( 'One of the URLs is missing, cannot determine redirection.' ) ;
5969 return null ;
6070 }
61- return stripWww ( initialUrl ) !== stripWww ( finalUrl ) ;
71+ initialUrl = cleanUrl ( initialUrl ) ;
72+ finalUrl = cleanUrl ( finalUrl ) ;
73+ logger . info ( { redirectCheck : { initialUrl, finalUrl} } , `Comparing initial URL: ${ initialUrl } with final URL: ${ finalUrl } ` ) ;
74+ logger . info ( `Redirect check is: ${ initialUrl !== finalUrl } ` ) ;
75+ return initialUrl !== finalUrl ;
6276}
0 commit comments