I am trying to split the url and get each part as domain
, category
, subcategory
etc. and insert each part into the table. For instance:
"www.mydomain.com/toolsanddownloads/dailymealplanner.html?languageid=6"
The goal is to perform a 404 redirect if the page does not exist. I am trying to write a SQL usinng CTE statement and get every part of the domain
;with cte AS ( SELECT CASE WHEN RIGHT(RTRIM(URL),1) = '/' THEN LEFT(URL,LEN(URL)-1) WHEN RIGHT(RTRIM(URL),5) = '.html' THEN LEFT(URL,LEN(URL)-5) ELSE URL END AS URL1, StartPos = CharIndex('//', URL)+2 FROM [dbo].[404RedirectTemp] ) SELECT URL1, SUBSTRING(URL1, 8, CHARINDEX('/', URL1, 9) - 8) AS DomainName, REVERSE(SUBSTRING(REVERSE(URL1), CHARINDEX('?', REVERSE(URL1)) + 1, CHARINDEX('/', REVERSE(URL1)) - CHARINDEX('?', REVERSE(URL1)) -1)) AS CategoryName, SUBSTRING(URL1, CHARINDEX('?', URL1) + 1, LEN(URL1)) AS QueryParameter FROM cte;
I always get the last bit for the category name and itโs wrong, because some kind of URL is http://www.mydomain.com/toolsanddownloads/dailymealplanner.html?languageid=6
some
"www.mydomain.com/toolsanddownloads" "www.mydomain.com/toolsanddownloads/dailymealplanner.html"
What I want to achieve is regardless of how many section URLs I want to get as columns: domain
, categories
, subcategories
, brand
, product
If the domain has only categories to receive categories, if categories and subcategories receive subcategories
I have over 4000 URLs in temp table that I want to pass through each of them and update another table for 404 redirect