Новыя перанакіраванні рэгулярнага выражэння дамена (Regex) у WordPress

Regex - рэгулярныя выразы

На працягу апошніх некалькіх тыдняў мы дапамагаем кліенту зрабіць складаную міграцыю з WordPress. У кліента было два прадукты, абодва яны сталі папулярнымі да таго, што ім давялося падзяліць бізнес, брэндынг і змест на асобныя дамены. Гэта цалкам пачынанне!

Іх існуючы дамен застаецца на месцы, але новы дамен будзе мець усё змесціва адносна гэтага прадукту ... ад выяваў, паведамленняў, тэматычных даследаванняў, загрузак, формаў, базы ведаў і г. д. Мы правялі аўдыт і прасканавалі сайт, каб пераканацца, што не хочам. Не прапусціце ніводнага актыву.

Пасля таго, як новы сайт быў устаноўлены і пачаў працаваць, надышоў час націснуць на пераключальнік і паставіць яго ў дзеянне. Гэта азначала, што любыя URL-адрасы з асноўнага сайта, які належаў да гэтага прадукту, павінны былі быць перанакіраваны на новы дамен. Мы падтрымлівалі большасць шляхоў узгодненых паміж сайтамі, таму ключавой была наладка перанакіраванняў належным чынам.

Перанакіраванне убудоў у WordPress

Даступныя два папулярныя убудовы, якія выдатна спраўляюцца з кіраваннем перанакіраваннямі з дапамогай WordPress:

  • Перанакіраванне - мабыць, лепшы убудова на рынку, з магчымасцямі рэгулярных выразаў і нават катэгорыямі для кіравання перанакіраваннямі.
  • Rankmath SEO - гэты лёгкі убудова для SEO - глыток свежага паветра і складае мой спіс Лепшыя плагіны WordPress на рынку. Ён перанакіроўвае ў рамках сваёй прапановы і нават імпартуе дадзеныя перанакіравання пры пераходзе на яго.

Калі вы выкарыстоўваеце механізм кіраванага хостынгу WordPress, напрыклад WPEngine, у іх ёсць модуль для апрацоўкі перанакіраванняў да таго, як чалавек калі-небудзь патрапіць на ваш сайт ... даволі прыемная функцыя, якая можа паменшыць латэнтнасць і накладныя выдаткі на вашым хостынгу.

І, вядома, можна запішыце правілы перанакіравання ў файл .htaccess на вашым серверы WordPress ... але я б не рэкамендаваў гэтага. Вам трэба адна сінтаксічная памылка, каб зрабіць ваш сайт недаступным!

Як стварыць перанакіраванне Regex

У прыкладзе, які я прыводжу вышэй, можа здацца простым проста зрабіць тыповае перанакіраванне з падтэчкі на новы дамен і падпапку:

Source: /product-a/
Destination: https://newdomain.com/product-a/

З гэтым ёсць праблема. Што рабіць, калі ў вас ёсць размеркаваныя спасылкі і кампаніі, у якіх ёсць радок запытаў для адсочвання кампаній або рэфералаў? Гэтыя старонкі не будуць правільна перанакіроўваць. Магчыма, URL:

https://existingdomain.com/product-a/?utm_source=newsletter

Паколькі вы напісалі дакладнае супадзенне, гэты URL нікуды не перанакіруе! Такім чынам, у вас можа ўзнікнуць спакуса зрабіць гэта рэгулярным выразам і дадаць падстаноўку да URL:

Source: /product-a/(.*)
Destination: https://newdomain.com/product-a/

Гэта даволі добра, але ёсць яшчэ некалькі праблем. Па-першае, ён будзе супадаць з любым URL-адрасам / прадукт-а / у ім і перанакіруйце іх усіх у адзін і той жа пункт прызначэння. Такім чынам, усе гэтыя шляхі будуць перанакіроўваць у адно і тое ж месца прызначэння.

https://existingdomain.com/product-a/
https://existingdomain.com/help/product-a/
https://existingdomain.com/category/parent/product-a/

Зрэшты, рэгулярныя выразы - выдатны інструмент. Па-першае, вы можаце абнавіць крыніцу, каб пераканацца, што ўзровень тэчкі вызначаны.

Source: ^/product-a/(.*)
Destination: https://newdomain.com/product-a/

Гэта забяспечыць правільны перанакіраванне толькі ўзроўню асноўнай тэчкі. Зараз другая праблема ... як вы атрымаеце інфармацыю аб запытах, захаваную на новым сайце, калі ваша перанакіраванне яе не ўтрымлівае? Ну, і рэгулярныя выразы маюць выдатнае рашэнне і для гэтага:

Source: ^/product-a/(.*)
Destination: https://newdomain.com/product-a/$1

Інфармацыя падстаноўкі фактычна фіксуецца і дадаецца да прызначэння з дапамогай зменнай. Такім чынам ...

https://existingdomain.com/product-a/?utm_source=newsletter

Правільна перанакіруе на:

https://newdomain.com/product-a/?utm_source=newsletter

Майце на ўвазе, што падстаноўны сімвал дазволіць перанакіраваць і любую падтэку, таму гэта таксама будзе ўключана:

https://existingdomain.com/product-a/features/?utm_source=newsletter

Перанакіруе на:

https://newdomain.com/product-a/features/?utm_source=newsletter

Зразумела, рэгулярныя выразы могуць стаць нашмат больш складанымі, чым гэта ... але я проста хацеў даць кароткі ўзор таго, як наладзіць перанакіраванне рэгулярных выразаў, якія пераводзяць усё ў новы дамен!

Што вы думаеце?

Гэты сайт выкарыстоўвае Akismet для барацьбы са спамам. Даведайцеся, як дадзеныя апрацоўваюцца каментар.