පිටුව පූරණය වීමට පෙර PHP හි වෙනත් URL එකකට යළි-යොමුවීමක් සකසන්නේ කෙසේද? Euroleague men ucp php යළි-යොමුවීම්

6.1K

https://example.com/initial.php පිටුවට යන පරිශීලකයින්ට https://example.com/final.php පිටුව පෙන්වීමට ඔබට අවශ්‍ය යැයි සිතමු. කිහිපයක් සමඟ මෙය කළ හැකිය PHP ක්රම, JavaScript සහ HTML. මෙම ලිපියෙන්, PHP වෙනත් පිටුවකට හරවා යැවීමට ඔබට භාවිතා කළ හැකි එක් එක් ක්‍රම අපි ආවරණය කරන්නෙමු.

මෙන්න අපි භාවිතා කරන විචල්‍ය කිහිපයක්:

URL එකක් හරවා යැවීමට PHP header() ශ්‍රිතය භාවිතා කිරීම

ඔබට initial.php සිට final.php වෙත යළි-යොමුවීමක් එක් කිරීමට අවශ්‍ය නම්, ඔබට පහත කේතය initial.php වෙබ් පිටුවේ තැබිය හැක. එය බ්‍රවුසරයට නව ස්ථාන ශීර්ෂයක් යවයි:

මෙහිදී අපි යළි-යොමු කිරීම නිර්මාණය කිරීමට PHP ශ්‍රිත ශීර්ෂය() භාවිතා කරමු. ඔබ මෙම කේතය ඕනෑම HTML හෝ පෙළකට පෙර තැබිය යුතුය. එසේ නොමැතිනම්, ශීර්ෂකය දැනටමත් යවා ඇති දෝෂයක් ඔබට ලැබෙනු ඇත. ශීර්ෂ යැවීමේ මෙම දෝෂය වැලැක්වීමට ඔබට ප්‍රතිදාන බෆරින් භාවිතා කළ හැක. පහත උදාහරණය මෙම PHP යළි-යොමු කිරීමේ තාක්ෂණය ක්‍රියාත්මක වන බව පෙන්වයි:

ශීර්ෂකය() ශ්‍රිතය භාවිතයෙන් යළි-යොමු කිරීමක් සිදු කිරීමට, ob_start() ශ්‍රිතය PHP ස්ක්‍රිප්ට් හි පළමු ශ්‍රිතය විය යුතුය. මෙය ශීර්ෂ දෝෂ ඇතිවීම වලක්වනු ඇත.

අමතර පියවරක් ලෙස, ඔබට ශීර්ෂ යළි-යොමු වූ වහාම ඩයි() හෝ පිටවීමේ() එකතු කළ හැක, එවිට වෙබ් පිටු කේතයේ ඉතිරි කොටස ක්‍රියාත්මක නොවේ. සමහර අවස්ථාවලදී, සෙවුම් රොබෝවරු හෝ බ්‍රවුසරයන් ස්ථාන ශීර්ෂයේ ඇඟවීමට අවධානය යොමු නොකරනු ඇත. අඩවි ආරක්ෂාවට ඇති විය හැකි තර්ජන මොනවාද:

පැහැදිලිවම කිවහොත්: die() හෝ exit() යළි-යොමුවීම් සමඟ කිසිදු සම්බන්ධයක් නැත. වෙබ් පිටුවේ ඉතිරි කේතය ක්‍රියාත්මක වීම වැළැක්වීමට ඒවා භාවිතා කරයි.

PHP හි පිටුවකට හරවා යවන විට, ස්ථාන ශීර්ෂ අගය සඳහන් කිරීමේදී නිරපේක්ෂ URL භාවිතා කිරීම නිර්දේශ කෙරේ. නමුත් සාපේක්ෂ URL ද වැඩ කරනු ඇත. පරිශීලකයන් බාහිර අඩවි හෝ වෙබ් පිටු වෙත හරවා යැවීමටද ඔබට මෙම විශේෂාංගය භාවිතා කළ හැක.

PHP echo() ශ්‍රිතය භාවිතයෙන් JavaScript යළි-යොමු කිරීමේ කේතය ප්‍රතිදානය කිරීම

මෙය පිරිසිදු PHP විසඳුමක් නොවේ. කෙසේ වෙතත්, එය ද ඵලදායී වේ. යළි-යොමුවීම් හසුරුවන JavaScript කේතය ප්‍රතිදානය කිරීමට ඔබට PHP echo() ශ්‍රිතය භාවිතා කළ හැක.

ඔබ මෙම විසඳුම භාවිතා කරන්නේ නම්, ඔබට ප්‍රතිදාන බෆරින් භාවිතා කිරීමට සිදු නොවේ. මෙය ශීර්ෂ යැවීමට අදාළ දෝෂ ඇතිවීම වළක්වයි.

භාවිතා කරන උදාහරණ කිහිපයක් පහත දැක්වේ විවිධ ක්රම JavaScript වත්මන් පිටුවෙන් වෙනත් පිටුවකට හරවා යැවීමට:

වෙනත් PHP අඩවියකට හරවා යැවීමේ මෙම ක්‍රමයේ ඇති එකම අවාසිය නම් ජාවාස්ක්‍රිප්ට් ක්‍රියාත්මක වන්නේ සේවාලාභියාගේ පැත්තේ වීමයි. තවද ඔබගේ අමුත්තන්ට JavaScript අක්‍රිය කර තිබිය හැක.

යළි හරවා යැවීම සඳහා HTML මෙටා ටැග් භාවිතා කිරීම

යළි-යොමුවීම් සිදු කිරීමට ඔබට මූලික HTML භාවිතා කළ හැක. එය වෘත්තීය නොවන බව පෙනේ, නමුත් එය ක්රියා කරයි. තවද ඔබගේ බ්‍රවුසරයේ ජාවාස්ක්‍රිප්ට් අක්‍රිය වීම හෝ කලින් ශීර්ෂ දෝෂයක් එවා තිබීම ගැන ඔබට කරදර විය යුතු නැත.

සෑම තත්පරයකම "n" පිටුව ස්වයංක්‍රීයව නැවුම් කිරීමට ඔබට පෙර උදාහරණයේ අවසාන පේළිය භාවිතා කළ හැකිය. උදාහරණයක් ලෙස, පහත කේතය සෑම තත්පර 8 කට වරක් ස්වයංක්‍රීයව පිටුව නැවුම් කරයි.

ආයුබෝවන් යාළුවනේ. අද මම ඉතා හැක්නිඩ්, නමුත් සෑම විටම අදාළ මාතෘකාවක් සාකච්ඡා කිරීමට කැමතියි - මෙය 301 යළි-යොමුවීම් (ස්ථිර යළි-යොමුවීම් 301) - SEO ප්‍රජාව තුළ, සහ විධිමත්භාවයකින් තොරව, “යළි යොමු කිරීම” යන වචනයෙන් අදහස් කරන්නේ හරියටම මෙයයි. තාක්ෂණික වශයෙන්, මෙය ඉල්ලීමකට සේවාදායකයේ ප්‍රතිචාරයයි; මෙම ප්‍රතිචාරයේ 301 කේතයක් ඇත, එය ඉල්ලීමේ ලිපිනය ස්ථිරවම ගෙන ගොස් ඇති බව පෙන්නුම් කරයි. මේ සියලු කූට උපක්‍රමවල ප්‍රතිඵලයක් ලෙස අපට අලුත් අවසාන ලිපිනයක් ලැබිය යුතුය.

ඔබට මෙම තාක්ෂණික අංශ අවශ්‍ය නොවන බව මම විශ්වාස කරමි, එබැවින් මට ව්‍යවහාරික දේවල් ගැන කතා කිරීමට අවශ්‍යය - යළි-යොමුවීමක් භාවිතා කිරීම වඩා හොඳ කවදාද සහ කුමන අවස්ථා වලදී, ඔබට යළි-යොමුවීම් නීති වින්‍යාසගත කළ හැක්කේ කෙසේද සහ කුමන විධානයන් සමඟද යනාදිය. ඔබට යළි-යොමුවීම්වල නිවැරදි බව පරීක්ෂා කළ හැකි මෙවලම් සහ සේවාවන් ද අපි සලකා බලමු.

පළ කිරීම ඉතා දිගු වූ බැවින්, ඔබගේ පහසුව සඳහා පටුනක් සෑදීමට මම තීරණය කළෙමි:

ඔබ 301 යළි-යොමුවීමක් කළ යුත්තේ කවදාද?

පළමුවෙන්ම, පිටුවක් (පිටු සමූහයක් හෝ සම්පූර්ණ අංශයක්) එහි ලිපිනය වෙනස් කළ විට යළි-යොමුවීමක් භාවිතා වේ - බොහෝ විට මෙය සිදු වන්නේ වෙබ් අඩවියේ ව්‍යුහය වෙනස් කළ විට, url හි ප්‍රධාන කොටස නැවත නම් කළ විට හෝ ලිපින සෑදීමේ මූලධර්මය වෙනස් වේ (වෙනත් වචන වලින්, CNC). අවාසනාවකට මෙන්, සෑම කෙනෙකුම වෙබ් අඩවියේ යමක් වෙනස් කරන විට මේ ගැන සිතන්නේ නැත, එහි ප්රතිඵලයක් වශයෙන් අනුපිටපත් ගොඩක් ඇති අතර, තනතුරු අහිමි වීමට හෝ සෙවුම් යන්ත්ර මගින් සම්බාධක පැනවීමට පවා හේතු වේ. මගේ කාර්යයේදී, මම බොහෝ විට එවැනි තත්වයන්ට මුහුණ දෙන අතර, සෑම දෙයක්ම නිවැරදි කිරීමට සහ ප්රතිවිපාක උදාසීන කිරීමට ස්නායු ගොඩක් වැය වේ. මා වෙනුවෙන්, CNC වර්ගය වෙනස් කිරීම හෝ ව්‍යුහය වෙනස් කිරීම පිළිබඳ ඕනෑම කාර්යයකට පෙර, වෙබ් අඩවියේ වත්මන් ව්‍යුහය, එහි සියලුම කොටස් සහ අවසාන පිටු වල උදාහරණ පිළිබඳ සැලැස්මක් සකස් කරන ලෙස මට නිර්දේශ කළ හැකිය. වැඩ අවසන් වූ පසු මේ සියල්ල පරීක්ෂා කිරීමට අවශ්‍ය වනු ඇත, එවිට අපි පැරණි ලිපිනයට ගිය විට අපි නව ලිපිනයට යන අතර සේවාදායකය 301 කේතය සමඟ යළි-යොමුවීමක් ලබා දෙයි (සහ 302 නොවේ).

යළි-යොමුවීම් 301 හි ඊළඟ පොදු භාවිතය වන්නේ අඩවි ලිපිනය වෙනස් කිරීම හෝ දර්පණ එකට ඇලවීමයි. සමාගමේ නැවත සන්නාමකරණයට අදාළව වෙබ් අඩවියේ ලිපිනය වෙනස් කිරීමට ඔබ තීරණය කරන්නේ නම් හෝ මුද්‍රිත ප්‍රවර්ධන නිෂ්පාදනවල එය දැක්වීමට නව, වඩා ලස්සන හා කෙටි වසමක් ලියාපදිංචි කර ඇත්නම්, පැරණි වසමෙහි ලිපිනයට පිවිසීමේදී පරිශීලකයා වීම ඉතා වැදගත් වේ. එකම පිටුවක අවසන් වේ (සහ මත නොවේ මුල් පිටුව), නමුත් නව වසමක. ප්‍රවර්ධන අඩවි සම්බන්ධයෙන් ගත් කල, ඒවා සාමාන්‍යයෙන් පිටු එකක් හෝ දෙකකින් සමන්විත වේ, ප්‍රධාන වෙබ් අඩවියට යන සබැඳි, හෝ ඔබ ප්‍රවර්ධන අඩවියට යන විට, ඔබව වහාම ප්‍රධාන වෙබ් අඩවියේ විශේෂ පිටුවකට හරවා යවනු ලැබේ. සමහර විට, වෙබ් අඩවියක් නිර්මාණය කිරීමේදී, වසම් කිහිපයක් එකවර ලියාපදිංචි කරනු ලැබේ, උදාහරණයක් ලෙස, ලතින් භාෂාවෙන් සමාගමේ නමේ අපැහැදිලි අක්ෂර වින්‍යාසය හේතුවෙන්. බුද්ධිමය ලෙස ලිපිනයක් ටයිප් කිරීමේදී, පරිශීලකයා නිවැරදි ස්ථානයට පැමිණෙන බව සහතික කිරීම සඳහා සහ වසම් කිහිපයක් ලියාපදිංචි කර ඇති බව සහතික කිරීම සඳහා, සියලු "සහායක" වසම් වලින් එක් ප්‍රධාන ලිපිනයකට යළි-යොමුවීම් 301ක් සිදු වීම ඉතා වැදගත් වේ. කිසිම අවස්ථාවක එකම වෙබ් අඩවිය සියලුම ලිපින වලට ප්‍රවේශ විය නොහැක.

දර්පණ ගැන ද - ඔබගේ වෙබ් අඩවිය http://www.site.ru, http://site.ru සහ https://site.ru යන ලිපිනයන්ගෙන් ලබා ගත හැකිය (දෙවැන්න දුර්ලභ ය, නමුත් එය සිදු වේ) - මෙය සිදු නොකළ යුතු සියලුම සම්භාව්‍ය වැරදි වන අතර ඒවා විසඳීමට යළි-යොමුවීම් 301 ක් සම්බන්ධ වේ. විවිධ වෙබ් අඩවි ලිපිනවලදී මෙන්, ඔබ ප්‍රධාන දර්පණය (www සමඟ හෝ www නොමැතිව) තීරණය කර ප්‍රධාන කැඩපත වෙත යළි-යොමුවීම් සැකසීමට අවශ්‍ය වේ. ඇත්ත වශයෙන්ම, සෙවුම් යන්ත්‍ර මෝඩ නොවන අතර එවැනි අවස්ථාවන්හිදී ඔවුන් බොහෝ විට තනිවම මුහුණ දෙන අතර ඔබට කිරීමෙන් ඔවුන්ට උදව් කළ හැකිය නිවැරදි සැකසුම් webmaster panels සහ robots.txt හි (Yandex, Host directive සඳහා). නමුත් SEO යනු සියුම් කාරණයක් වන අතර, මම වාසනාව මත විශ්වාසය නොතබමි, නමුත් ඔප්පු කළ ක්රමයක් භාවිතා කරන්න!

ඔබ ලිපින තීරුවේ ඩොමේන් නාමය ඇතුළත් කරන විට පමණක් නොව, සේවාදායකයේ IP ලිපිනය ද වෙබ් අඩවියේ පිටපතක් ලබා ගත හැකි විට සමහර විට ඉතා අප්රසන්න තත්වයක් ඇති වේ. හවුල් සත්කාරකත්වය මත මෙම තත්වය සිදු නොවනු ඇත, නමුත් ඔබට කැපවූ සේවාදායකයක් තිබේ නම්, එය පහසුවෙන් සිදු විය හැක. වැරදි සේවාදායක වින්‍යාසය සඳහා මෙය හේතුව විය හැකිය - IP ලිපිනයකට ප්‍රවේශ වීමේදී ප්‍රවේශය අක්‍රිය කිරීම ගැටළුව විසඳීමට උපකාරී වනු ඇත, නමුත් මෙහි ඇති හොඳම විසඳුම වන්නේ වෙබ් සේවාදායක මට්ටමින් (Apache හෝ Nginx) 301 යළි-යොමුවීමක් වේ. මාස කිහිපයකට පෙර මට එවැනි තත්වයක් තිබුණි - සමහර වෙබ් අඩවි එල්ලා ඇති කැපවූ සේවාදායකයක් මා සතුව තිබුණි, නමුත් එක් වෙබ් අඩවියක් සඳහා මම වෙනත් වෙනම සේවාදායකයක් ගැනීමට තීරණය කළෙමි. මම වෙබ් අඩවිය මාරු කළෙමි, සෑම දෙයක්ම ඔරලෝසු වැඩ මෙන් ක්‍රියා කළ අතර, පසුව දිනක් මට ගූගල් ප්‍රතිඵලවල මගේ වෙබ් අඩවියේ ක්ලෝනයක් හමු විය - කම්පනය, භීතිය - මෙය මගේ නව සේවාදායකයේ සහ ඇත්ත වශයෙන්ම මගේ වෙබ් අඩවියේ IP ලිපිනය බව පෙනී ගියේය. එය මත ජීවත් වන අතර, සම්බන්ධ වූ විට, සේවාදායකය 200 OK ප්‍රතිචාරයක් ලබා දෙන අතර Google එය සම්පූර්ණයෙන්ම සුචිගත කර ඇත. පෙර සේවාදායකයේ එවැනි ගැටළුවක් නොතිබුණි; මෙම IP සඳහා ප්‍රධාන එක ලෙස දක්වා ඇති IP වෙතින් 301 වසම වෙත යළි-යොමුවීමක් මුලින් වින්‍යාස කර ඇත. දැන් මම කටුක අත්දැකීම් වලින් ඉගෙන ගෙන ඇති අතර සෑම විටම එවැනි දේවල් පරීක්ෂා කරන්න - දැනුවත් වන්න සහ ඔබ, වැරදි නැවත නොකරන්න. nginx web server configs වෙත ප්‍රධාන වසම වෙත යළි-යොමුවීමක් එක් කිරීමෙන් ගැටළුව විසඳා ඇත; මම පහත පෝස්ටුවෙහි ප්‍රායෝගික කොටසෙහි කේතයේ උදාහරණයක් පෙන්වන්නම්.

තත්වය පෙර එකට සමාන වේ - වෙබ් අඩවියේ පිටපතක් පිහිටා ඇති විට සහ සේවා පරීක්ෂණ වසමක් හරහා ප්රවේශ විය හැකි විට, උදාහරණයක් ලෙස, site.hosting.ru වැනි. එවැනි අවස්ථා මගේ භාවිතයේ ද සිදු වන අතර, පෙර අවස්ථාව මෙන් නොව, මෙය අතථ්‍ය සත්කාරක සඳහා සාමාන්‍ය වේ. මෙය පවතින්නේ ඇයි? උදාහරණයක් ලෙස, ඔබ තවමත් වසමක් මිල දී ගෙන නැත හෝ ඔබ වෙබ් අඩවියක් එක් සත්කාරක සමාගමකින් තවත් ස්ථානයකට මාරු කරයි, නමුත් වසම සඳහා වන NS සේවාදායකයන් වෙනස් කර නැත හෝ තවමත් යාවත්කාලීන කර නොමැත. DNS වාර්තාසපයන්නා දී. එවැනි තත්වයන් තුළ ඔවුන් එසේ කරයි පරීක්ෂණ ලිපින, නව සත්කාරකත්වය වෙත අඩවි ලිපිනය යළි හරවා යැවීමට පෙර ඔබට සියල්ල වින්‍යාස කර ස්ථාපනය කළ හැක. සමහර සත්කාරක සමාගම් එවැනි තාක්ෂණික ලිපිනවලට ප්‍රවේශය අවහිර නොකිරීමෙන් සහ ඒවායේ සුචිගත කිරීම පවා තහනම් නොකිරීමෙන් පව් කරයි. ඔබට මෙම අප්රසන්න තත්වය තිබේ නම්, ඔබ .htaccess ගොනුවේ ප්රධාන එක වෙත තාක්ෂණික ලිපිනයෙන් 301 යළි-යොමුවීමක් ලියාපදිංචි කිරීමට උත්සාහ කළ යුතුය.

තවද, ඇත්ත වශයෙන්ම, 301 යළි-යොමුවීම් විවිධ අනුපිටපත් පිටු වලට එරෙහිව සටන් කිරීමට නිවැරදි SEO භාවිතා කිරීමට කැමතියි. ඇයි නිවැරදි SEOs පමණක්? ඔව්, වැරදි පුද්ගලයින් සේවාදායකයාගේ වෙබ් අඩවියට ඇතුළු වී ඇති අතර, බොහෝ දුරට ඉඩ ඇති බැවින්, වෙබ් අඩවියට පිවිසීමෙන් තොරව සබැඳි මිලදී ගැනීමට පටන් ගත් නිසා - අහෝ, මෙය සාමාන්‍ය දෙයක් නොවේ. වෙබ් අඩවිය ප්‍රශස්ත කිරීම සහ ප්‍රවර්ධනය කිරීම සඳහා වගකිව යුතු ඔවුන්ගේ කොන්ත්‍රාත්කරුවන්ගේ/සේවකයන්ගේ අඛණ්ඩතාව පරීක්ෂා කිරීමට අවශ්‍ය පාරිභෝගිකයින් විසින් වරින් වර මා වෙත පැමිණෙනු ඇත, කාර්යය කෙතරම් හොඳින් සිදුවෙමින් පවතීද - - සහ මෙතෙක් මා වැරදි හෝ අඩුපාඩු සොයා නොගත් බව කිසි විටෙකත් සිදුවී නොමැත. අඩවි මත. එබැවින්, මතක තබා ගන්න - ඔබට උදව් කිරීමට මම සැමවිටම සතුටු වෙමි. අපි අනුපිටපත් වෙත ආපසු යමු - සුචිගත කිරීමෙන් අනුපිටපත් අවහිර කිරීම වෙනුවට ප්‍රධාන ලිපිනයට හරවා යැවීම අවශ්‍ය බව මම විශ්වාස කරමි, මෙය එතරම් සිත්ගන්නා සුළු නොවේ. ඇත්ත වශයෙන්ම, ගැනීම් බලහත්කාරයෙන් සිදු වන අවස්ථා බොහොමයක් ඇත, එවිට ඔබට කැනොනීකරණයකින් තොරව කළ නොහැක, නමුත් ඔබට යළි-යොමුවීමක් කිරීමට අවස්ථාවක් තිබේ නම්, එය කිරීමට වග බලා ගන්න. නිතරම පරීක්ෂා කළ යුතු අනුපිටපත්වල නිරන්තර අවස්ථා: අවසානයේ ස්ලෑෂ් සහිත සහ රහිත ලිපින, පරාමිති සහ ලේබල් සහිත ලිපින - මෙය විසඳන්නේ කෙසේදැයි මම ඔබට කියමි.

ඔබට 301 යළි-යොමුවීමක් කළ හැක්කේ කවදාද?

ඔබට මෙම කොටසේ බොහෝ දේ ලිවිය නොහැක, නමුත් මම උත්සාහ කරමි. කියවීමෙන් පසු අදහස් දැක්වීමේදී ඔබ මට අදහස් කිහිපයක් එකතු කරනු ඇතැයි මම සැබවින්ම බලාපොරොත්තු වෙමි.

404 දෝෂයක් වෙනුවට සේවාදායක ප්‍රතිචාරයක් ලෙස යළි-යොමුවීම් 301 භාවිතා කළ හැක හමු වුණේ නැහැ- වෙනත් වචන වලින් කිවහොත්, වැරදි සබැඳියක් හෝ නොපවතින පිටුවක් අනුගමනය කරන පරිශීලකයෙකුට "කණගාටුයි, මෙම පිටුව තවදුරටත් නොපවතියි" යනුවෙන් පණිවිඩයක් නොපෙනේ, නමුත් පවතින වෙනත් පිටුවකට මාරු කරනු ලැබේ. මෙය ප්‍රවීණයන් අතර ඉතා මතභේදාත්මක කරුණක් වන අතර එබැවින් මම මගේ මතය කිසිවෙකු මත පටවන්නේ නැත. නමුත් මම 404 දෝෂයක් වෙනුවට යළි-යොමුවීමක් භාවිතා කිරීමට කැමැත්තෙමි, සිදුවීම් සංවර්ධනය සඳහා විකල්ප කිහිපයක් තිබේ ... බලන්න, දෝෂ 404 ක කාණ්ඩ 2 ක් ඇත: පළමුවැන්න සම්භාව්‍ය ය, පිටුව ඇත්ත වශයෙන්ම මකා දැමූ විට, දෙවනුව වංක බාහිර සබැඳි හේතුවෙන් දෝෂය දිස්වන විටය. පළමු අවස්ථාවේදී, ඔබ බොහෝ විට යළි-යොමුවීමක් සිදු නොකළ යුතුය, නමුත් 404 දෝෂය එලෙසම තබන්න. නමුත් දෙවන අවස්ථාවේදී, ඔබ විසින් නිවැරදි url ලිපිනය වෙත හරවා යැවීමක් ගැන සැලකිලිමත් විය යුතුය, එය බිඳුණු සබැඳියකින් එය ප්‍රතිසාධනය කළ හැකි නම්, හෝ ප්‍රධාන පිටුවට (හෝ ප්‍රවර්ගයට) හරවා යැවීමක්.

301 යළි-යොමු කිරීමක් සිදු නොකළ යුතු විට

යළි-යොමුවීමක් ඔබට හානි කළ හැක්කේ කවදාද යන්න ගැන වචන කිහිපයක්, එබැවින් පහත සඳහන් අවස්ථා වලදී එය භාවිතා නොකළ යුතුය.

වැදගත්ම දෙය නම් වැරදි කිරීමෙන් වැළකී සිටීමයි, ඔබ කරන්නේ කුමක්ද යන්න පිළිබඳව ඔබට 100% විශ්වාස නැතිනම් හෝ යමක් සැක කරන්නේ නම් ඔබ යළි-යොමුවීම්වලට සම්බන්ධ නොවිය යුතුය. මෙය මිත්රශීලී උපදෙසක් ලෙස සලකන්න :)

තාවකාලික විසඳුම් සඳහා ස්ථිර යළි-යොමුවීමක් භාවිතා නොකළ යුතුය, එය එහි නමෙන් පැහැදිලිය - තාවකාලික නැවත ස්ථානගත කිරීම සඳහා, 302 Moved Temporarily භාවිතා කරන්න. මෙම අවස්ථාවෙහිදී, පිටු එකට ඇලවීම සිදු නොවන අතර යළි-යොමුවීම් සහිත පිටුව ඕනෑම වේලාවක ප්‍රතිසාධනය කළ හැක.

ඔබගේ වසම සමඟ ගැටළු තිබේ නම්, උදාහරණයක් ලෙස, පෙරහන්, තහනම් කිරීම්, ආදිය, සහ ඔබ අඩවි ලිපිනය (වසම) වෙනස් කිරීමට තීරණය කරයි නම්, ඔබ පැරණි වසම සිට නව වෙත 301 යළි-යොමුවීමක් සිදු නොකළ යුතුය - ප්රතිඵලයක් ලෙස , ඔබ "මැලියම්" සහ පැරණි සියලු ගැටලු. එනම්, අවසානයේ කිසිවක් වෙනස් නොවනු ඇත. ඔව්, පැරණි වසමේ සිට අලුත් එකට සම්පූර්ණ 301 යළි-යොමුවක් භාවිතා කරමින් Google Penguin ෆිල්ටරයෙන් ඉවත් වීමට යම් කාලයක් සඳහා විසඳුමක් තිබුණි. ඇත්ත වශයෙන්ම, සම්බාධකවලට පෙර සියලුම තනතුරු යථා තත්ත්වයට පත් කරන ලද අතර, මෙය නපුරු පෙන්ගුයින් සඳහා කෝකටත් තෛලයක් ලෙස පෙනුණි, නමුත් ඇල්ගොරිතමයේ ඊළඟ යාවත්කාලීන කිරීමත් සමඟ, මෙම විශේෂාංගය සැලකිල්ලට ගත් අතර නව වසම ද පෙරණයට යටත් විය, එහි ප්‍රතිඵලයක් වශයෙන්, වසම වෙනස් කිරීමෙන් පසු කිසිවක් වැඩිදියුණු නොවීය. ඔබ දැනටමත් වසම වෙනස් කිරීමට තීරණය කර ඇත්නම්, එවිට ඔබට සියලු අන්තර්ගතයන් නව වසම වෙත මාරු කිරීමට උත්සාහ කළ හැකිය, සහ පැරණි එක මත එය මකා දමා චලනය පිළිබඳ පණිවිඩයක් සහිත අංකුරයක් තැබිය හැකිය, නැතහොත් ඊටත් වඩා හොඳයි, සියල්ල ආරම්භ කරන්න. මුල සිට.

301 යළි-යොමු කිරීමක් කිරීමට බොහෝ ක්‍රම තිබේ: htaccess, php, javascript, server settings ආදිය හරහා - එබැවින් ඔබ සියලු ක්‍රම එකවර භාවිතා කිරීමට උත්සාහ නොකළ යුතුය, අතර “එකඟතාවයන්” ඇතිවීමේ සම්භාවිතාව විවිධ ක්රමසහ ඔබට, උදාහරණයක් ලෙස, අසීමිත චක්‍රීය යළි-යොමුවීමක් ලබා ගත හැක.

ඔබ සංකීර්ණ අඩවි ව්‍යුහයක් සමඟ වැඩ කරන විට හෝ විශාල ද්වාරයක් ප්‍රතිනිර්මාණය කරන විට, බහු යළි-යොමුවීම් හෝ දිගු දාම බොහෝ විට සිදු වේ. මෙයින් අදහස් කරන්නේ යළි-යොමුවීම එක් පියවරකින් නොව දෙකකින් හෝ වැඩි ගණනකින් සිදු වන බවයි - මෙය නරක තත්වයක් වන අතර හැකි නම් එය වළක්වා ගත යුතුය. ඔබ මෙම සබැඳිය ක්ලික් කළ විට සෙවුම් රොබෝ, පේලියට යළි-යොමුවීම් කිහිපයක් ලැබී ඇති බැවින්, ඔහු රැවටෙන බව සිතිය හැකි අතර තවදුරටත් අනුගමනය කිරීම නවත්වා සබැඳි සැලකිල්ලට ගැනීම සම්පූර්ණයෙන්ම නතර කරන්න. මෙන්න මගේ පුහුණුවීම් වලින් උදාහරණයක්: මම වරක් එවැනි අනපේක්ෂිත දාමයක් සහිත විගණනයක් සඳහා වෙබ් අඩවියක් දුටුවෙමි:

http://site.ru/tax/term/30 ->
http://www.site.ru/tax/term/30 ->
http://www.site.ru/tax/term/30/ ->
http://www.site.hosting.ru/404.php ->
http://www.site.ru/404.php

අවසානයේදී, 404 දෝෂයක් ලබා දිය යුතු http://www.site.ru/404.php පිටුව 200 හරි ප්‍රතිචාරයක් ලබා දෙයි. මෙය මගේ මනස පවා පුපුරවා හැරියේය, නමුත් සෙවුම් රොබෝවක් එවැනි කැරොසල් එකකට ගියහොත් එය කුමක් සිතනු ඇත්දැයි සිතා බලන්න! දාමයට විවිධ වසම් තුනක් සහභාගී වූවා පමණක් නොව, දෝෂ පිටුව ද එය දෝෂයක් නොවන බවත් එය සුචිගත කළ යුතු බවත් පවසයි.

හැකි නම්, වෙබ් අඩවිය තුළ යළි-යොමුවීම් නොමැති වීම සඳහා උත්සාහ කරන්න - වෙබ් අඩවියට බාහිර සබැඳි නිවැරදි කළ නොහැකි නම් සහ යළි-යොමුවීමක් නොවැළැක්විය හැකි නම්, අභ්‍යන්තර සබැඳි නිවැරදි කළ යුතුය. මෙය සුචිගත කිරීමේ සහ ශ්‍රේණිගත කිරීමේ ගුණාත්මක භාවයට බලපාන්නේ නැත, නමුත් ඔබට සහතික විය නොහැක, එබැවින් එවැනි මතභේදාත්මක තත්වයන් වළක්වා ගැනීම වඩා හොඳය. අභ්‍යන්තර යළි-යොමුවීම් සහ සාමාන්‍යයෙන් වෙබ් අඩවිය තුළ ඇති දෝෂ නිරීක්ෂණය කිරීමට අපූරු එකක් ඔබට උපකාරී වනු ඇත.

.htaccess හි යළි-යොමුවීම් රීති නිර්මාණය කිරීමේදී, සේවාදායකයේ ඇති නාමාවලි සහ ගොනු වල සැබෑ ලිපින බැහැර කර තේරීම නිරීක්ෂණය කරන්න. මා වරක් විගණනය කරන ලද වෙබ් අඩවියක තත්වය නම්, අවසානයේ කප්පාදුවක් ඇති සහ රහිත අනුපිටපත් ප්‍රවර්ග පිටු වලට එරෙහි සටනේදී, වෙබ්මාස්ටර් එය ටිකක් ඉක්මවා ගොස්, ඊට ප්‍රතිවිරුද්ධව, ගැටලුව තවත් උග්‍ර කිරීම පමණි. Rewriting Rules එක real js scripts වලට සහ css style files වලට බලපෑවා විතරක් නෙවෙයි, ඒවා හරියට වැඩ කරන එක නවත්තනවා විතරක් නෙවෙයි, සමහර pages වලට අන්තිමට අනවශ්‍ය slash එකක් ලැබිලා duplicates ආවා. මිත්‍රවරුනි, ඔබ නිර්මාණය කරන නීති ඔබ වැඩ කරන ලිපින සමූහයට පමණක් අදාළ වන බව ප්‍රවේශමෙන් සහතික කර ගන්න, අනෙක් සියල්ල සීමා කරන්න.

ඔබට ඉවත් කිරීමට අවශ්‍ය ගැටළු සහගත පිටු සහ ඒවායේ ලිපින සෙවීමට, Yandex සහ Google වෙතින් වෙබ්මාස්ටර් පැනල් වල හැකියාවන් භාවිතා කරන්න. Yandex Webmaster සඳහා: අඩවියක් තෝරන්න -> අඩවි සුචිගත කිරීම -> බැහැර කළ පිටු. Google Webmaster සඳහා: අඩවිය තෝරන්න –> Optimization –> HTML Optimization; තවද: අඩවිය තෝරන්න -> වින්‍යාසය -> URL පරාමිති.

Yandex සහ Google හි යළි-යොමුවීම් සුචිගත කිරීමේ සහ නැවත සුචිගත කිරීමේ විශේෂාංග. ඔබ අනුපිටපත් සහ ගැටළු සහගත ලිපින සමඟ අරගල කරන විට, ඇත්ත වශයෙන්ම, වෙබ්මාස්ටර් පැනලවලින් දෝෂ ඉවත් කිරීමට ඔබ බලා සිටිනු ඇත; මෙහි සමහර විශේෂාංග තිබේ. ගූගල් සමඟ, සියල්ල සරලයි - ඔබ යළි-යොමුවීම් සකසනු ඇත, වෙනස්කම් සති 2 ක් ඇතුළත සුචිගත කරනු ලැබේ, එම අවස්ථාවේදීම වෙබ්මාස්ටර්ගේ පැනලයෙන් දෝෂ අතුරුදහන් වීමට පටන් ගනී, සාමාන්‍යයෙන් මාසයකට පසු සියලු දෝෂ අතුරුදහන් වේ. Yandex සමඟ, සියුම් බවක් ඇති අතර, මෙය පහත පරිදි වේ: යළි-යොමුවීම් සැකසීමෙන් පසු, පැනලයෙන් දෝෂ අතුරුදහන් වන තෙක් ඔබට සදහටම බලා සිටිය හැකිය. මම වරක් මම සහාය දීමට ලියන තෙක් මාස හයක් බලා සිටියෙමි, එහිදී ඔවුන් මට දන්වා සිටියේ ඊට අමතරව යළි-යොමු කිරීමට, robots.txt හි ගැටළුකාරී පිටු අතිරේකව වසා දැමීම අවශ්‍ය වන අතර පසුව පමණක් ඒවා වෙබ්මාස්ටර්ගේ පැනලයෙන් අතුරුදහන් වනු ඇත.

.htaccess හරහා ස්ථිර යළි-යොමුවීම් 301

යළි-යොමුවීම් ස්ථාපනය කිරීමේ මෙම ක්රමය වඩාත් ජනප්රිය හා සරලම වේ. කෙසේ වෙතත්, මම පිළිගත යුතුය, සෑම දෙයක්ම පෙනෙන තරම් සරල නැත, එබැවින් මම htaccess ගැන වෙනම ලිපියක් ලිවීමට අදහස් කරමි. ප්ලස් පැත්තේ මෙම ක්රමයයළි-යොමුවීම් සේවාදායක මට්ටමින් ක්‍රියාත්මක වන අතර ඕනෑම වෙබ් අඩවියක ස්ක්‍රිප්ට් සැකසීම ආරම්භ වීමට පෙර සහ අමතර බරක් ගෙන නොයන බව සටහන් කළ හැකිය.

ඔබට දැනටමත් ඔබගේ සේවාදායකයේ .htaccess ගොනුවක් තිබෙන්නට ඇත (මූලයේ, ප්‍රධාන index.php ඇති තැන). මෙම ගොනුව නොපෙනේ නම්:

  • ftp කළමනාකරුගේ සැකසුම් පරීක්ෂා කරන්න, එය htaccess ගොනුව වන පද්ධති සහ ගොනු සැඟවිය හැක.
  • යන්න ගොනු කළමනාකරුසත්කාරක පාලක පැනලය හරහා ගොනුව සඳහා අවසර පරීක්ෂා කරන්න. මම අදහස් කරන්නේ CHMOD නොවේ, නමුත් කණ්ඩායමක් සහ පරිශීලකයෙකු, උදාහරණයක් ලෙස, තිබිය හැක මූල පරිශීලක, සහ ඔබ වසම් හිමිකරුගේ පරිශීලක ප්‍රවේශය භාවිතයෙන් ftp හරහා සම්බන්ධ වේ.
  • ගොනුව සරලව නොපවතියි :) එවිට එය නිර්මාණය කළ යුතුය, නමුත් වින්ඩෝස් යටතේ සමහර විට ගැටළුවක් පැන නගී, මන්ද ඇත්ත වශයෙන්ම, .htaccess ගොනුව පද්ධතිය විසින් දකින්නේ නමක් නොමැති ගොනුවක් ලෙස සහ දිගුවක් සමඟ පමණි. මම සරල ක්‍රමයක් යෝජනා කරනවා - සාමාන්‍ය txt ගොනුවක් සාදන්න, එයට “RewriteEngine On” (උපුටා දැක්වීම් නොමැතිව) පේළිය එක් කරන්න, txt ගොනුව සේවාදායකයට උඩුගත කරන්න, ගොනුව සේවාදායකයේ .htaccess ලෙස නැවත නම් කරන්න.

බොහෝ යළි-යොමුවීම් සම්බන්ධ සංස්කරණ "RewriteEngine On" රේඛාවෙන් පසුව ගොනුවේ ආරම්භයේදීම ලිවිය යුතු අතර එවිට මෙම රීති පළමුව සැකසෙනු ඇත. ක්රියාවන්ගේ අනුපිළිවෙල අනුගමනය කිරීම වැදගත් වේ, මන්ද විධාන ආරම්භයේ සිට පළමු සිදුවීම දක්වා සේවාදායක පේළිය මඟින් සකසනු ලැබේ. වෙනත් වචන වලින් කිවහොත්, ඔබ සැමවිටම විශේෂිත නියැදියකින් ආරම්භ කර වඩාත් පොදු සාම්පලයකින් අවසන් කළ යුතුය.

වඩාත් පොදු සහ ප්රයෝජනවත් උදාහරණ කිහිපයක් බලමු:

301 වසම සඳහා www.site.ru සිට site.ru වෙත යළි-යොමුවීම්

RewriteCond %(HTTP_HOST) !^www\.(.*) RewriteRule ^(.*)$ http://www.%1/$1

ඉහත යළි-යොමුවීම් විකල්ප ඉතා හොඳින් ක්‍රියා කරන අතර ඔබේ පැත්තෙන් කිසිදු වෙනසක් අවශ්‍ය නොවේ - ගොනුව .htaccess ගොනුවට ඇතුළු කරන්න. කෙසේ වෙතත්, 100% ආරක්ෂිත වීමට, මම ඔබට තවත් විකල්පයක් උපදෙස් දෙන්නෙමි:

RewriteCond %(HTTP_HOST) !^www.site.ru$ RewriteRule ^(.*)$ http://www.site.ru/$1

RewriteCond %(HTTP_HOST) !^www.site.ru$ RewriteRule ^(.*)$ http://www.site.ru/$1

RewriteCond %(HTTP_HOST) !^site.ru$ RewriteRule ^(.*)$ http://site.ru/$1

RewriteCond %(HTTP_HOST) !^site.ru$ RewriteRule ^(.*)$ http://site.ru/$1

පළමුවැන්න www සමඟ ප්‍රධාන වසමක් ඇති අයට, දෙවැන්න www නොමැති අයට. ඒ අනුව, උදාහරණ දෙකෙහිම "අඩවිය" වෙනුවට ඔබේ වසමේ නම ඇතුළත් කළ යුතුය.
ඉතින්, මෙම විකල්ප වඩා හොඳ වන්නේ ඇයි? ඉතා සරලව, ඔවුන් වසම් නාමයේ www නොමැතිකම/පැමිණීම පමණක් නොව, සම්පූර්ණ අනුකූලතාවය සඳහා වසම් නාමයද පරීක්ෂා කරයි.
සජීවී උදාහරණය: අනපේක්ෂිත ලෙස වෙබ් අඩවියක් සත්කාරකයේ සේවා ලිපිනයකින් සුචිගත කළ හැකි බව නිසැකවම ඔබ මුණගැසී ඇත (එවැනි ලිපිනයක් නිකුත් කර ඇති අතර එමඟින් ඔබේ සැබෑ වසම සම්බන්ධ කිරීමට පෙර වෙබ් අඩවියට ප්‍රවේශ විය හැකිය), යම් කැඩපතක් හෝ IP එකක් පවා ලිපිනය! එබැවින්, විශ්වීය නීති මගින් www හි නොමැති/පැවතීම පමණක් සත්‍යාපනය කරනු ඇති අතර, පරිශීලකයා හෝ සෙවුම් රොබෝවරයා ප්‍රවේශ වන්නේ කුමන වසමකටද යන්න ගැටළුවක් නොවේ.
එබැවින්, උසස් විකල්පය භාවිතා කිරීමෙන්, ඔබේ වෙබ් අඩවියට ප්‍රවේශ විය හැක්කේ ඔබ පුද්ගලිකව සඳහන් කර ඇති සහ www සැලකිල්ලට ගනිමින් පමණක් සහ තනිකරම ඩොමේන් නාමය භාවිතා කරන බවට ඔබට 146% විශ්වාසයි. මම මෙම විකල්පය පමණක් භාවිතා කරන අතර එය ඔබට නිර්දේශ කරමි!

301 http සිට https වෙත යළි-යොමුවීම්

ආරක්ෂිත ප්‍රොටෝකෝලයකට අඩවි විශාල වශයෙන් සංක්‍රමණය වන ආලෝකයේ, ඔබ http සිට https වෙත හරවා යවන්නේ කෙසේදැයි දැන සිටිය යුතුය. මාර්ගය වන විට, ඔබ තවමත් SSL සහතිකයක් තෝරාගෙන නොමැති නම්, ඔබ ගැන මගේ සටහන කියවිය යුතුය.

පහත මම ඔබට http සිට https ප්‍රොටෝකෝලය වෙත 301 යළි-යොමුවීමක් සඳහා විකල්ප කිහිපයක් ඉදිරිපත් කරමි, එය ඔබගේ සේවාදායකයේ වින්‍යාසය අනුව ක්‍රියා කළ හැකි හෝ නොවීමට ඉඩ ඇත, නමුත් එක් රීතියක් ඔබට අනිවාර්යයෙන්ම ගැලපේ:

RewriteCond %(HTTPS) !=RewriteRule මත ^(.*)$ https://%(HTTP_HOST)/$1

RewriteCond %(HTTPS) !=RewriteRule මත ^(.*)$ https://%(HTTP_HOST)/$1

RewriteCond %(SERVER_PORT) !^443 $ RewriteRule ^(.*)$ https://%(SERVER_NAME)%(REQUEST_URI)

RewriteCond %(SERVER_PORT) !^443$ RewriteRule ^(.*)$ https://%(SERVER_NAME)%(REQUEST_URI)

RewriteCond %(ENV:HTTPS) !RewriteRule මත ^(.*)$ https://%(HTTP_HOST)%(REQUEST_URI)

RewriteCond %(ENV:HTTPS) !RewriteRule මත ^(.*)$ https://%(HTTP_HOST)%(REQUEST_URI)

RewriteCond %(HTTP:X-HTTPS) !1 RewriteRule ^(.*)$ https://%(HTTP_HOST)/$1

RewriteCond %(HTTP:X-HTTPS) !1 RewriteRule ^(.*)$ https://%(HTTP_HOST)/$1

RewriteCond %(HTTPS) අඩුවෙන් RewriteCond %(HTTP:X-Forwarded-Proto) !https RewriteRule ^(.*)$ https://%(HTTP_HOST)%(REQUEST_URI)

https සිට http ප්‍රොටෝකෝලය වෙත හරවා යවන්න (අවංකවම, ඔබට මෙය අවශ්‍ය වන්නේ මන්දැයි මම නොදනිමි):

RewriteCond %(HTTPS) =RwriteRule මත ^(.*)$ http://%(HTTP_HOST)/$1

RewriteCond %(HTTPS) =RwriteRule මත ^(.*)$ http://%(HTTP_HOST)/$1

මෑතකදී මම ඉතා ලිව්වා සවිස්තරාත්මක උපදෙස්. ඔබ https සිට https වෙත මාරු වීමට සැලසුම් කරන්නේ නම්, එය කියවීමට ඔබ ඔබටම ණයගැතියි!

තේරුම්ගත නොහැකි ගොබ්බ ගොබ්බයාට යම් පැහැදිලිකමක් ගෙන ඒමට මට ඉඩ දෙන්න:

  • RewriteCond යන්නෙන් දැක්වෙන්නේ, ගැලපෙන්නේ නම්, RewriteRule ක්‍රියාත්මක කරන කොන්දේසියකි. භාවිතා කිරීම මගින් නිතිපතා ප්රකාශනනූල් රටා නියම කර ඇත.
  • සේවාදායක විචල්යයන්:
    • %(REQUEST_URI) - වසම් නාමයක් සහ GET පරාමිති නොමැති URL හි කොටසක්, උදාහරණයක් ලෙස, ඔබ දැනට කියවන පිටුව සඳහා: blog/post/4393,
    • %(HTTP_HOST) - සත්කාරක හෝ වසම් නාමය, උදාහරණයක් ලෙස: වෙබ් අඩවිය
    • %(QUERY_STRING) - GET පරාමිති කට්ටලයක් සහිත තන්තුවක්, එනම් ප්‍රශ්න ලකුණට පසුව URL කොටස (සහ නැංගුරම් ජාලයට පෙර, එකක් තිබේ නම්).
    • %(REQUEST_FILENAME) - සම්පූර්ණ මාර්ගයවී ගොනු පද්ධතියමෙම ඉල්ලීමට අනුරූප ගොනුවකට හෝ ස්ක්‍රිප්ට් එකකට සේවාදායකය..php, නමුත් සේවාදායක ගොනු පද්ධතියේ මෙය භයානක රේඛාව /var/www/site/data/www/site/index.php වේ.
      යළි-යොමු කිරීමක් සිදු කරන විට, ඔබට අනපේක්ෂිත ප්‍රති result ලයක් ලැබෙනු ඇත, උදාහරණයක් ලෙස, ඔබට http://site.ru/page-name?post=17434801_4060 ලිපිනයේ post=17434801_4060 පරාමිති ඉවත් කිරීමට අවශ්‍ය විය, අනුරූප නීති ( ඒවා පහතින් ලියා ඇත), නමුත් අවසානයේ අපට රේඛාව ලැබුණි http://site.ru/usr/local/www/site.ru/www/page-name - අපි පරාමිති ඉවත් කළෙමු, නමුත් ලබා ගත්තා අමුතු ලිපිනය. මේ සියල්ලට හේතුව ඔබ RewriteEngine On පසු ගොනුවේ ආරම්භයේ RewriteBase / විධානයක් සඳහන් නොකළ නිසා, නාමාවලියක සන්දර්භය තුළ පරිවර්තනයන් සඳහා නිශ්චිත, මූලික URL එකක් සකසයි.
  • අනුලකුණු සමූහ හෝ රටාවක "ටැග්" නිර්වචනය කිරීමට Metacharacters භාවිතා කරයි:
    • ^ - රේඛා ආරම්භක ලකුණ,
    • $ යනු රේඛාවේ අවසානය,
    • ! - ප්රතික්ෂේප කිරීම,
    • \ - බේරුම් ස්ලැෂ්, එය අනුගමනය කරන මෙටාඅක්ෂරය සාමාන්‍ය අක්ෂරයක් ලෙස සලකා බැලීමට ඔබට ඉඩ සලසයි,
    • . - dot, ඕනෑම චරිතයක් දක්වයි, නමුත් එකක් පමණි,
    • () - කණ්ඩායම් කිරීම.
  • සාමාන්‍ය අක්ෂර, මෙටාචාක්‍රටර් හෝ ඒවායේ කණ්ඩායම් වලට පසුව වෙනස් කරන්නන් ස්ථානගත කර සැකිලි භාවිතා කිරීමේ හැකියාව පුළුල් කරයි:
    • ? - සංකේතය 0 හෝ 1 වතාවක් පුනරාවර්තනය වේ,
    • * - 0 සිට 65536 වාරයක් දක්වා නැවත නැවතත්,
    • + - 1 සිට 65536 වාරයක් දක්වා පුනරාවර්තනය වේ.
  • ධජ මෙම රීතිය සඳහා අමතර විකල්ප නිර්වචනය කර ලැයිස්තුගත කර ඇත හතරැස් වරහන්කොමා වලින් වෙන් කර ඇත:
    • NC - (nocase) සිද්ධි පරීක්ෂාව අක්‍රීය කරයි.
    • R - (යලි-යොමුවීම්) පරිවර්තන ක්‍රියාවලිය නවත්වන අතර ප්‍රතිඵලය නැවත යොමු කිරීමක් ලෙස සේවාදායක බ්‍රවුසරයට ලබා දෙයි මෙම පිටුව(302, තාවකාලිකව ගෙන යන ලදී). මෙම ධජය සමඟින් ඔබට වෙනස් ප්‍රතිඵල කේතයක් සඳහන් කළ හැක, උදාහරණයක් ලෙස R=301 කේතය 301 (ස්ථිර ලෙස ගෙන යන ලද) සමඟ යළි-යොමුවීමක් ලබා දෙනු ඇත. ඔබ තේරුම් ගත් පරිදි, අපට අවශ්ය වන්නේ මෙයයි.
    • L - (අවසාන) පරිවර්තන ක්රියාවලිය නවත්වන අතර වත්මන් සබැඳිය අවසන් ලෙස සලකනු ලැබේ.

වඩාත්ම ජනප්‍රිය අවස්ථාව වන්නේ index.php (html) සිට ප්‍රධාන පිටුවට 301 යළි-යොමුවීමයි. අඩවි වලින් 90% ක්, http://site.ru සහ http://site.ru/index.php (හෝ index.html, index.htm හෝ වෙනත් ඕනෑම විකල්පයක් යන ලිපිනයන්හි ප්‍රධාන පිටුව අනුපිටපත් කිරීමේ ගැටලුවක් තිබේ. , එය කමක් නැත, නැතහොත් එකවරම පවා). කොතැනක හෝ මෙය පැහැදිලිය, උදාහරණයක් ලෙස, ලාංඡනයෙන් සබැඳියක් site.ru වෙත යොමු වන විට සහ මෙනුවේ ඇති සබැඳියක් site.ru/index.php වෙත යොමු වන විට, කොතැනක හෝ එය නොපැහැදිලි ය, ඇතුළු වන විට අනුපිටපතක් සොයාගත් විට index.php වෙතින් ලිපිනය අතින් . ගැටලුව සරලව විසඳා ගැනීම වැදගත්ය. මම විශ්වීය විකල්පයක් ඉදිරිපත් කරමි, මෙන්න එය:

RewriteCond %(THE_REQUEST) ^(3 ,9 )\ /index\.(php|html|htm)\ HTTP/ RewriteRule ^(.*)index\.(php|html|htm)$ $1

RewriteCond %(THE_REQUEST) ^(3,9)\ /index\.(php|html|htm)\ HTTP/ RewriteRule ^(.*)index\.(php|html|htm)$ $1

"RewriteEngine On" රේඛාවට පසුව මෙම කේතය නොවෙනස්ව අලවන්න, ගැටළුවක් නැත!

වෙබ් අඩවියේ අනුපිටපත් සමඟ අරගල කිරීමට පටන් ගන්නා බොහෝ දෙනෙක් කල්පනා කරන්නේ ප්‍රධාන පිටුව http://site.ru/page-name.html&post=-1234567_8901 අනුපිටපත් කරන එවැනි සබැඳි පැමිණෙන්නේ කොහෙන්ද? &post=-1234567_8901 උපසර්ගය පැමිණියේ කොහෙන්ද - මෙම “හොඳ” VKontakte වෙතින් ලබාගෙන ඇත, යමෙකු ඔබේ වෙබ් අඩවියට සබැඳියක් ඔවුන්ගේ බිත්තියේ, කණ්ඩායමක හෝ පොදු ස්ථානයක බෙදා ගන්නා විට, පෙනෙන පරිදි සමහර සංඛ්‍යාලේඛන නිරීක්ෂණය කිරීමට සමාන රේඛාවක් ස්වයංක්‍රීයව එකතු වේ. .

මෙම විකාරයෙන් මිදීමට ඔබ htaccess වෙත එක් කළ යුතුය:

RewriteCond %(REQUEST_URI) ^(.*)\&sa= RewriteRule ^(.*)\&sa=(.*)$ $1

ඔබට පෙනෙන පරිදි, මෙය සහ පෙර කේස් අතර වෙනසක් නැත, ඔබට url හි &post= හෝ &sa= හෝ කුමක් වුවත් විසඳුම එකම වේ, ඔබට කේතයේ පැහැදිලිව පෙනෙන කොටස් ප්‍රතිස්ථාපනය කිරීමට අවශ්‍ය වේ. පැහැදිලි නේද?

ලිපිනයෙහි පරාමිති හෝ ටැග් ඉවත් කිරීම

ප්‍රශ්නය අදහස් දැක්වීමේදී සහ සංසදයේ බොහෝ වාරයක් අසන ලද බැවින් එය නොසලකා හැරිය නොහැක. එවැනි අනුපිටපත් සමඟ කළ යුත්තේ කුමක්ද: http://site.ru/?abrakadabra හෝ වඩාත් සැබෑ නඩුවක් http://site.ru?utm_source=twitterfeed&utm_medium=twitter

මෙම අවස්ථාව මීළඟ ලක්ෂ්‍යයට වඩා තරමක් වෙනස් වේ, එහිදී අපි PHP ස්ක්‍රිප්ට් සඳහා පරාමිති ඉවත් කරමු, මන්ද මෙහි අපි සුපුරුදු ලිපිනය සහ පරාමිති ස්ක්‍රිප්ට් වෙත ලබා නොදෙන බැවිනි. මෙන්න විසඳුම:

RewriteCond %(QUERY_STRING) ^lang=ru$ RewriteRule ^(.*)\.php\?(.*)$ $1\.php

%(QUERY_STRING) යනු PHP සඳහා විචල්‍ය කට්ටලයක් සහිත තන්තුවකි, ප්‍රශ්න ලකුණට පසුව URL හි කොටස (සහ නැංගුරම් හෑෂ් එකක් තිබේ නම්).

url අමතන්න - http://site.ru/index.php?lang=ru

RewriteCond %(QUERY_STRING) ^lang=ru $
ඉල්ලන ලද url මෙම රීතිය යටතේ වැටේ, වෙනත් නීති නොමැත, එබැවින් RewriteRule පහත පේළියේ ක්‍රියාත්මක වේ.
RewriteRule ^(.*) \.php\?(.*) $ $1 \.php

මූලාශ්‍ර url: http://site.ru/index .php?lang=ru
Url විග්‍රහ කිරීමේ අච්චුව: ^(.*) \.php\?(.*) $
URL එක විචල්‍යවලට විග්‍රහ කෙරෙනු ඇත: $1 = http://site.ru/index, $2 = lang=ru සහ http://site.ru/index .php ($1 \.php) ආකාරයෙන් නැවත එකලස් කරනු ලැබේ.
එවිට නව url වෙත 301 යළි-යොමුවීමක් සිදුවනු ඇත.

අඩවි ව්‍යුහය වෙනස් කිරීමේදී නීති පිළිබඳ උදාහරණය

RewriteRule ^post/category/(.*)$ blog/category/$1 RewriteRule ^post/(.*)$ blog/post/$1

RewriteRule ^post/category/(.*)$ blog/category/$1 RewriteRule ^post/(.*)$ blog/post/$1

මම මගේ බ්ලොග් අඩවියේ ව්‍යුහය වෙනස් කරන විට htaccess ගොනුවට එකතු කිරීමට සිදු වූ රේඛා මෙයයි.

මීට පෙර, මට පහත ලිපිනයන් තිබුණි: https://site/post/4358 සහ https://site/post/category/seo, එය කෙසේ හෝ ව්‍යුහයේ තර්කනය බිඳ දැමූ - සියල්ලට පසු, බ්ලොග් අඩවියේ කොටසක් පමණි. , නමුත් කිසියම් හේතුවක් නිසා පෝස්ට් අයත් වන්නේ බ්ලොග් අඩවියට නොව වෙබ් අඩවියට වන අතර කාණ්ඩ අයත් වන්නේ පෝස්ට් වලටය, එයද සම්පූර්ණයෙන්ම තාර්කික නොවේ..info/blog/category/seo - දැන් බ්ලොග් අඩවිය අඩවියේ වෙනම කොටසකි, සහ තනතුරු එයට අයත් වන අතර ප්‍රවර්ග අයත් වන්නේ බ්ලොග් අඩවියට මිස පෝස්ට් වලට නොවේ.

එම උදාහරණයෙන් පැහැදිලි වන්නේ නීති රීති අනුපිළිවෙල අනුගමනය කිරීම වැදගත් බවයි. මම රේඛා මාරු කළා නම්, එනම්, RewriteRule ^post/(..info/blog/post/category/seo යන පේළිය ඉදිරියෙන් පැමිණෙන අතර එය https://site/blog/category/seo හි තිබිය යුතු පරිදි නොවේ.

අවසාන උදාහරණය නම් සේවාදායකයේ මූලයේ ලිපිනය සමඟ පොදු දෝෂයක් විශ්ලේෂණය කිරීමයි

උදාහරණයක් ලෙස, ප්‍රවර්ග පිටුව http://site.ru/razdel/podrazdel/index.php සහ http://site.ru/razdel/podrazdel/ යන ලිපින දෙකෙහි ඇති විට ගැටලුවක් විසඳීමට ඔබ තීරණය කර ඇත. දෙවන url එක නිවැරදි වන අතර ප්‍රධාන එක වන අතර අවසානයේ index.php සහිත url එක සම්පූර්ණයෙන් බැහැර කළ යුතු අනුපිටපතකි.

index.php වෙතින් ප්‍රවර්ගයකට හරවා යැවීම සඳහා, ඔබ පහත රීතිය ලියන්න:

RewriteEngine On RewriteBase /

301 පිටුවෙන් පිටුවට නව ලිපිනයකට හරවා යැවීම

සරලම අවස්ථාව නම් ඔබට එක් පිටුවක් වෙනත් ලිපිනයකට හරවා යැවීමට අවශ්‍ය වූ විටය. ඔබට පිටු කිහිපයක් සඳහා යළි-යොමුවීමක් කිරීමට අවශ්‍ය නම්, ඔබට නීති කිහිපයක් ලිවීමට සිදුවනු ඇත, නමුත් මේ අවස්ථාවේ දී ඉහත විස්තර කර ඇති සැකිලි භාවිතා කිරීම වඩා හොඳය. සම්පූර්ණයෙන්ම සමාන සින්ටැක්ස් විකල්ප කිහිපයක් තිබේ:

යළි-යොමුවීම් 301 /page-name1.html http://site.ru/page-name2.html යළි-යොමුවීම් ස්ථිර /page-name1.html http://site.ru/page-name2.html RedirectPermanent /page-name1.html http://site.ru/page-name1.html http://site.ru/page-name2.html

යළි-යොමුවීම් 301 /page-name1.html http://site.ru/page-name2.html යළි-යොමුවීම් ස්ථිර /page-name1.html http://site.ru/page-name2.html RedirectPermanent /page-name1.html http://site.ru/page-name1.html http://site.ru/page-name2.html

තුනෙන් එකක් තෝරන්න, නමුත් පුද්ගලිකව මම පළමු විකල්පයට කැමතියි - එය කෙටි, සරල සහ වඩා තේරුම්ගත හැකි ය. මාර්ගය වන විට, මෙහි site.ru අනිවාර්යයෙන්ම එකම වසම නොවිය හැකිය, නමුත් වෙනත්.

අපි .htaccess සමඟ අවසන් කර PHP වෙත යමු.

PHP භාවිතයෙන් ස්ථිර යළි-යොමුවීම් 301

මම සාමාන්‍යයෙන් PHP යළි-යොමුවීම් භාවිතා කරන්නේ .htaccess සමඟ දුෂ්කරතා ඇති විට හෝ PHP ශ්‍රිතය වඩාත් තාර්කික සහ තේරුම්ගත හැකි වන බව පෙනී යන විටය.

php හි 301 යළි-යොමුවීම් වල වාක්‍ය ඛණ්ඩය මේ ආකාරයට පෙනේ:

ශීර්ෂකය (); ශීර්ෂකය ("ස්ථානය: http://site.ru"); die("යලි යොමු කරන්න" );

ශීර්ෂකය ("HTTP/1.1 301 ස්ථිරව ගෙන යන ලදී"); ශීර්ෂකය ("ස්ථානය: http://site.ru"); ඩයි ("යලි යොමු කරන්න");

මෙම රේඛා සේවාදායකයාගේ බ්‍රවුසරයට පවසන්නේ කිසියම් ඉල්ලුම් කළ පිටුවකින් http://site.ru ලිපිනයට ස්ථිරවම හරවා යැවීමට අවශ්‍ය බවයි. මෙම අවස්ථාවේදී, http://site.ru වත්මන් වෙබ් අඩවියේ ප්රධාන පිටුවේ ලිපිනය පමණක් නොව, වෙනත් ඕනෑම වෙබ් අඩවියක් විය හැකිය. යමක් වැරදී ගොස් දෝෂයක් සිදුවුවහොත්, බ්‍රව්සර් කවුළුව තුළ අපට “යළි යොමු කරන්න” යන සෙල්ලිපිය පෙනෙනු ඇත.

එය වඩාත් පැහැදිලි කිරීම සඳහා, මගේ බ්ලොග් අඩවිය සඳහා මා විසින් ලියන ලද කාර්යයන් පිළිබඳ උදාහරණ කිහිපයක්, යම් යම් ගැටළු විසඳීමට උත්සාහ කරයි.

url එකෙන් යම් කොටසක් ඉවත් කිරීමට ඔබට ඉඩ සලසන ශ්‍රිතයක්

නම් (strpos($_SERVER["REQUEST_URI" ], "http://site" !== බොරු) ( $real_page_url = "http://site" .str_replace ("/http://site" , "" , $_SERVER["REQUEST_URI" ]); ශීර්ෂකය ("HTTP/1.1 301 ස්ථීර ලෙස ගෙන යන ලදී" ); ශීර්ෂකය ("ස්ථානය: $real_page_url" ); die("Redirect" ); )

නම් (strpos($_SERVER["REQUEST_URI"], "http://site") !== අසත්‍ය) ( $real_page_url = "http://site"..1 301 ස්ථිරව ගෙන ගොස් ඇත"); ශීර්ෂකය("ස්ථානය: $real_page_url");මරණය ("යලි යොමු කරන්න"); )

වෙබ්මාස්ටර් පැනලයේ දෝෂ 404 ක පොකුරක් දිස් වූ බවට මට ගැටලුවක් ඇති වූ පසු, මෙම පිටු වල ලිපිනයන් https://alaev..e වැනි විය. ලිපිනයේ කොහේ හෝ සිට අනුපිටපත් අඩවි ලිපිනයක් දිස් විය. ඉන්පසු මම URI (සටහන, URL නොව, URI) හි “http://site” ඇතුළත් කිරීම අඩංගු දැයි පරීක්ෂා කරන ශ්‍රිතයක් ලිවීය, එය එසේ නම්, අපි මෙම කොටස ලිපිනයෙන් කපා ප්‍රතිඵලය ලියන්නෙමු. $real_page_url විචල්‍යයට, පසුව අපි විචල්‍යයෙන් නිවැරදි ලිපිනයට 301 යළි-යොමු කිරීමක් කරන්නෙමු.

URL වෙතින් ට්‍රේලිං ස්ලෑෂ් ඉවත් කරන කාර්යය

නම් (($_SERVER["REQUEST_URI" ], - 1 , 1 ) == "/" ) ($requested_url = rtrim($requested_url, "/" ); ශීර්ෂකය ("HTTP/1.0 301 ස්ථිරව ගෙන යන ලදී" ); ශීර්ෂකය ( "ස්ථානය: $requested_url" ); die("යලි යොමු කරන්න" ); )

නම් (($_SERVER["REQUEST_URI"], - 1, 1) == "/") ($requested_url = rtrim($requested_url, "/"); ශීර්ෂකය("HTTP/1.0 301 ස්ථිරව ගෙන ගියා"); ශීර්ෂකය( "ස්ථානය: $requested_url"); මියයන්න("යලි යොමු කරන්න"); )

පිටුවේ ඉල්ලන ලද ලිපිනය අවසානයේ slash එකක් තිබේද යන්න සොයා බලන සරලම කාර්යය මෙන්න, එකක් තිබේ නම්, slash කපා හැර 301 නැවත යොමු කිරීමක් සිදු වේ.

ASP, Ruby on Rail යනාදී විවිධ ක්‍රමලේඛන භාෂාවලින් යළි-යොමුවීම් විධානයක් නිකුත් කිරීමට ඔබට ඉඩ සලසන තවත් බොහෝ විකල්ප ඇත, නමුත් මට මෙම භාෂා හුරු නැත, එබැවින් මම දක්ෂ නොවී ඔබව මෙහි රවටා නොගනිමි. . Meta refresh meta tag භාවිතයෙන් යළි-යොමුවීම් ද කළ හැකිය, මෙන්ම javascript වෙත යළි-යොමුවීම් - නමුත් මෙය වංක දොරටු සංවර්ධකයින්ගේ ඉරණම වන අතර සෙවුම් යන්ත්‍ර මෙම යළි-යොමුවීම් තේරුම් නොගනී; ඔවුන්ට සේවාදායකයෙන් 200 OK ප්‍රතිචාරයක් ලැබේ. එබැවින් අපි මෙම විකල්ප සලකා බලන්නේ නැත.

nginx සේවාදායකය සඳහා ස්ථිර යළි-යොමුවීම් 301

IP හරහා ප්‍රවේශ විය හැකි මගේ වෙබ් අඩවියේ කැඩපතක් ගැන මා ලිව්වා මතකද? එහි ප්‍රතිඵලයක් ලෙස, සාමාන්‍යයෙන් මෙහි පිහිටා ඇති /etc/nginx/nginx.conf සේවාදායක වින්‍යාස ගොනුවේ ලියා ඇති යළි-යොමුවීමක් මඟින් ගැටළුව විසඳා ඇත. පහත පේළි එහි ලියා ඇත:

සේවාදායකය (සවන් දෙන්න 1.2.34.123:80 පෙරනිමිය; server_name _; නැවත ලියන්න ^/(.*)$ http://site.ru/$1 ස්ථිර; )

සේවාදායකය (සවන් දෙන්න 1.2.34.123:80 පෙරනිමිය; server_name _; නැවත ලියන්න ^/(.*)$ http://site.ru/$1 ස්ථිර; )

80 වරාය හරහා IP ලිපිනයක් ලබා ගන්නේ නම්, එය site.ru වෙත ස්ථිර යළි-යොමුවීමක් සිදු කළ යුතු බව මෙහි සඳහන් වේ.

කෙසේ වෙතත්, තාක්ෂණික සහාය මා මෙම වචන සමඟ මෙය කිරීමට නිර්දේශ කළේ නැත: “HTTP සේවාදායකය පැහැදිලිව සඳහන් කර නොමැති ලිපිනයකට ප්‍රවේශ වන්නේ නම් එය සම්බන්ධතාවය වසා දමන ආකාරයට වින්‍යාස කිරීම වඩාත් නිවැරදි වනු ඇත. HTTP සේවාදායක වින්‍යාසය, මෙය සේවාදායක සම්පත් සඳහා වඩාත්ම විශ්වාසදායක, සරල, ආරක්ෂිත සහ අඩු ඉල්ලුමක් ඇති විකල්පයකි. ටික වේලාවකට පසු, තවදුරටත් ප්‍රවේශ විය නොහැකි පිටු සෙවුම් යන්ත්‍ර දර්ශකයෙන් ඉවත් කරනු ඇත.

ඊළඟ උපදෙස මෙයයි: “ඔබට යළි හරවා යැවීම වෙනුවට සම්බන්ධතාවය වසා දැමීමට අවශ්‍ය වූ විට, රේඛාව වෙනුවට, “නැවත ලියන්න ^/(.*)$ http://site.ru/$1 ස්ථීර;” සඳහන් කරන්න. එවැනි රේඛාවක් "ආපසු 444;". ඉන්පසු ධාවනය කරන්න: "invoke-rc.d nginx reload"".

සමහර විට මෙය කෙනෙකුට උපකාර වනු ඇත.

වඩාත් පොදු අවස්ථාවන්හි යළි-යොමුවීම් සඳහා උදාහරණ

www.site.ru වසම සඳහා site.ru වෙත හරවා යවන්න

සේවාදායකය (සවන් දෙන්න 80; server_name site.ru; නැවත ලියන්න ^ http://www.site.ru$request_uri? ස්ථිර; )

http://site.ru/index.php සිට http://site.ru/ වෙත හරවා යවන්න

ස්ථානය = /index.php ($request_uri = /index.php) (නැවත ලියන්න ^ http://$host? ස්ථිර;#301 යළි-යොමුවීම් ) fastcgi_pass unix:/tmp/fastcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_params ඇතුලත් කරන්න;)

ස්ථානය = /index.php ($request_uri = /index.php) (නැවත ලියන්න ^ http://$host? ස්ථිර;#301 යළි-යොමුවීම් ) fastcgi_pass unix:/tmp/fastcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_params ඇතුලත් කරන්න;)

ඒ වගේ දෙයක්. මම nginx සඳහා වින්‍යාස සැකසීමට හොඳ නැත; මම සැමවිටම Apache සැකසුම් සමඟ කටයුතු කරමි, එබැවින් ඔබට nginx ගැන කිසියම් ප්‍රශ්නයක් ඇත්නම්, මට ඔබට උදව් කිරීමට නොහැකි වනු ඇත...

HTTP ශීර්ෂයන් සහ සේවාදායක ප්‍රතිචාර තත්ත්වයන් පරීක්ෂා කරන්නේ කෙසේද?

මෙම කොටසේදී මට සේවාදායක ප්‍රතිචාරය පරීක්ෂා කිරීම සඳහා විවිධ සේවාවන් සහ ප්ලගීන විස්තර කිරීමට අවශ්‍ය විය, නමුත් මෙම පළ කිරීම දැනටමත් පරිමාවෙන් විශාල බැවින් මට දිගු සඳහා සබැඳි වලට පමණක් සීමා වීමට සිදුවනු ඇති බව මට වැටහේ. ක්‍රෝම් බ්‍රව්සර්සහ Firefox.

Firefox සඳහා HttpFox ඇඩෝනය

HttpFox (මෙන්න ඇඩෝනයට සබැඳියක්) මගේ ප්‍රියතම http ශීර්ෂ ලුහුබැඳීමේ මෙවලමයි. HttpFox මඟින් පේළියෙන් පේළියට පිටු පැටවීමේ ප්‍රගතිය පෙන්වයි, එමඟින් ඔබට ලුහුබැඳීමට ඉඩ සලසයි, උදාහරණයක් ලෙස, යළි-යොමුවීම් දාම සහ, සාමාන්‍යයෙන්, පිටු පැටවීමේ අනුපිළිවෙල සහ වේගය. ඔබ Mozilla භාවිතා කරන්නේ නම්, මම එය අනිවාර්යයෙන්ම නිර්දේශ කරමි.

Chrome සඳහා HTTP ශීර්ෂ දිගුව

මමම HTTP ශීර්ෂ දිගුව භාවිතා නොකරමි (මෙන්න එයට සබැඳියක්), නමුත් අන්තර්ජාලය මට ඒ ගැන අවධානය යොමු කරන ලෙස උපදෙස් දුන්නේය. ඔබට වඩා හොඳ විකල්ප තිබේ නම්, කරුණාකර අදහස් දැක්වීම්වල පළ කරන්න.

මෙය මගේ භයානක දිගු හා නීරස ලිපිය අවසන් කරයි, මිත්‍රවරුනි.
අවසානය දක්වා කියවීමට ස්තූතියි, ඔබට එය ඇත්තෙන්ම ප්‍රයෝජනවත් යැයි මම බලාපොරොත්තු වෙමි.

.htaccess වින්‍යාස ගොනුව Apache වෙබ් සේවාදායකයන් සඳහා වන වින්‍යාසයකි. බොහෝ සත්කාරක අඩවි මෙම සේවාදායකය හරහා ක්‍රියා කරයි, එබැවින් සෑම වෙබ් අඩවියකම මෙම ගොනුව ඇත. වෙබ්මාස්ටර්වරුන්ට තමන්ගේම වෙනස්කම් කිරීමෙන් එහි ක්‍රියාකාරිත්වය අර්ධ වශයෙන් පාලනය කළ හැකිය. මෙම ලිපියෙන් අපි සේවාදායකයේ ක්‍රියාකාරිත්වයේ වෙනස් කළ හැකි විධාන සහ රීති දෙස බලමු.

වඩාත්ම වැදගත් .htaccess ගොනුව අඩවියේ මූලයේ පිහිටා ඇත:

එහි ක්‍රියා වත්මන් නාමාවලියට සහ සියලුම උප බහලුම් වලට අදාළ වේ. එම. වෙබ් අඩවි හිමිකරුවන්ට සමස්ත සේවාදායකයේ වැඩවලට බාධා නොකර ඔවුන්ගේ ව්‍යාපෘතියේ කාර්යයට පමණක් බලපෑම් කිරීමට අවස්ථාව තිබේ. මෙම ගොනුව අස්ථානගත වී ඇත්නම්, එය ඕනෑම නොට්පෑඩ් භාවිතයෙන් සෑදිය හැක. ප්රධාන දෙය නම් ගොනු නාමය ".htaccess" විය යුතුය - .txt, .doc, ආදිය ආකෘති නොමැතිව.

301 යළි-යොමුවීම් බොහෝ විට වින්‍යාස කර ඇත්තේ .htaccess ගොනුව හරහා සේවාදායක මට්ටමින් වන අතර එය වෙත මාරු වීමේ ක්‍රියාවලිය බෙහෙවින් වේගවත් කරයි. නව පිටුව, නිසා අතරමැදි පිටුවක් පූරණය කිරීමට අවශ්‍ය නැත. එය 404 දෝෂය සකසන ගොනුව ද නියම කරයි.

පහතින් අපි .htaccess හරහා යළි-යොමුවීම් සඳහා ඇති සියලුම පොදු විකල්ප දෙස බලනු ඇත, පළමුව අපි විකල්ප සහ රීති පිළිබඳව හුරුපුරුදු වෙමු.

යළි-යොමුවීම් සමඟ වැඩ කිරීමට හැකි වීමට, ඔබ ReWriteEngine මොඩියුලය සක්‍රීය කළ යුතුය. මෙය සිදු කිරීම සඳහා, ඔබ කේත පේළි දෙකක් ලිවිය යුතුය (වඩාත් සුදුසු වන්නේ .htaccess ගොනුවේ ඉහලින්ම):

විකල්ප +FollowSymLinks RewriteEngine On

mod_write මොඩියුල විධාන සමඟ වැඩ කිරීමට හැකි වීම සඳහා මෙම රේඛා ඔබගේ .htaccess ගොනුවේ ඉහලින්ම තබන්න.

එසේම, mod_alias මොඩියුල සත්කාරකයේ සක්‍රීය කළ යුතුය (යලි-යොමුවීම්, RedirectPermanent සහ RedirectMatch සඳහා සහය දැක්වීමට).

1. යළි-යොමුවීම්, නැවත ලිවීමේ රීතිය සහ RewriteCond නීති 1.1. යළි-යොමු කිරීමේ නියෝගය

වාක්‍ය යළි-යොමුකිරීම:

http://to_full_address වෙතින් / හරවා යවන්න

යළි-යොමුවීම් එක් පිටුවක සිට තවත් පිටුවකට සෘජු යළි-යොමුවීමක් සකසයි.

යළි-යොමු කිරීමේ කේතය තත්ත්‍වයේ ලියා ඇත. විකල්ප පරාමිතියකි. බොහෝ විට ඔවුන් 301 ලියන්නේ, පිටු ලිපිනයෙහි ස්ථිර වෙනසක් සංඥා කරයි.

"සිට" පිටුව සම්පූර්ණ වෙබ් අඩවියේ ලිපිනය සඳහන් නොකර ආකෘතියකින් ලිවීම වැදගත් වේ, නමුත් "/" (එනම්, වෙබ් අඩවියේ මූලයෙන්) ආරම්භ වන සම්පූර්ණ සාපේක්ෂ URL එක දක්වයි. යළි-යොමුවීම් සිදුවන පිටුව සම්පූර්ණයෙන් ලිවිය යුතුය, i.e. නිරපේක්ෂ URL පිටු ලිපිනය (එනම් වසම් නාමය සහ http හෝ https ප්‍රොටෝකෝලය සමඟ).

උදාහරණ වශයෙන්

301 /oldpage.php යළි-යොමු කරන්න http://site/newpage.php

ඔබට එය වෙනස් ආකාරයකින් ලිවිය හැකිය

RedirectPermanent 301 /oldpage.php http://site/newpage.php හෝ Redirect ස්ථිර 301 /oldpage.php http://site/newpage.php 1.2. RewriteRule විධානය

RewriteRule විධානය සංක්‍රාන්ති රීති සකසයි. වාක්‍ය ඛණ්ඩය පහත පරිදි වේ:

RewriteRule Pattern Substitution [කේත]
  • බාහිර යළි-යොමුවීමක් සිදු වූ විට, බ්‍රව්සර් රේඛාවේ URL වෙනස් වේ - ""
  • අභ්‍යන්තරය සමඟ - බ්‍රවුසර පේළියේ URL වෙනස් නොකරයි - " " හෝ "[L] "
1.3 RewriteCond විධානය

RewriteCond විධානය RewriteRule හි නීති ක්‍රියාත්මක කරන කොන්දේසි නිර්වචනය කරයි.

RewriteCond Comparison_String Condition

උදාහරණයක් ලෙස, මෙම නියමයන් පරිශීලකයාගේ බ්‍රවුසරය, IP ලිපිනය, මාතෘකාව, ආදිය විය හැක.

1.4 RedirectMatch විධානය

RedirectMatch විධානය යළි-යොමුවීම් වලට සමාන වේ, එකම වෙනස වන්නේ එය ඔබට නිතිපතා ප්‍රකාශන ලිවීමට ඉඩ දීමයි.

RedirectMatch From Where To 2. .htaccess හි යළි-යොමුවීම් 301 සඳහා උදාහරණ

අපි දැනටමත් ලිපිවල .htaccess යළි-යොමුවීම් සමඟ බොහෝ උදාහරණ දෙස බලා ඇත:

  • වෙබ් අඩවියේ ලිපිනය වෙනස් කිරීම - පැරණි වසමේ සිට අලුත් එකට හරවා යැවීම

මෙහිදී අපි තවමත් නොපවතින යළි-යොමුවීම් සඳහා විකල්ප එකතු කරන්නෙමු.

2.1 එක් පිටුවකින් තවත් පිටුවකට හරවා යැවීම

site.ru/cat/oldpage සිට site.ru/newpage.html වෙත හරවා යවන්න

RewriteRule ^cat/oldpage.* /newpage.html

හෝ දෙවන විකල්පය:

යළි-යොමුවීම් 301 /cat/oldpage http://www.site.com/newpage.php 2.2. සියලුම .htm ගොනු වලින් .html RewriteCond %(REQUEST_FILENAME) වෙත හරවා යවන්න !-f RewriteRule ^(.*)\.htm$ $1.html

හෝ දෙවන විකල්පය:

RewriteRule ^(.*)\.htm$ $1.html 2.3. සම්පූර්ණ නාමාවලිය වෙනත් පිටුවකට හරවා යවන්න

/old/ බහලුම සහ උප බහලුම් වල ඇති ඕනෑම පිටුවක් /new.php වෙත හරවා යවනු ලැබේ

RewriteRule ^old(.*)$ /new.php 2.4. URL එකකින් අමතර ස්ලැෂ් ඉවත් කිරීම

උදාහරණයක් ලෙස, පිටුව /catalog//stranica.html වෙත පිවිසිය හැකි අතර විවෘත වේ. මෙම තත්ත්වය මඟහරවා ගැනීමට සහ අනන්ත අනුපිටපත් නිර්මාණය නොකිරීමට, ඔබ පහත යළි-යොමුවීම් ලිවිය යුතුය

RewriteCond %(REQUEST_URI) ^(.*)//(.*)$ RewriteRule . %1/%2 2.5. නැවත යොමු කිරීමකින් තොරව නැවත ලියන්න

ඔබට පිටු URL වෙනස් නොකර වෙනත් පිටුවක් පූරණය කළ හැක. උදාහරණයක් ලෙස, අපි /news.html පිටුව පූරණය කරමු, සහ ලිපින තීරුව /news/happy ලිපිනය පෙන්වයි

RewriteRule ^news/happy.* /news.html [L] 2.6. මුල් පිටුවේ ලිපිනය අවසානයේ ටේ්රලිං ස්ලෑෂ් එකක් එකතු කිරීම

උදාහරණයක් ලෙස, බොහෝ සේවාදායකයන් URL හි අවසාන ස්ලැෂ් ලියා නැති ආකාරයට ක්‍රියා කරයි. උදාහරණයක් ලෙස, http://site.ru. පහත කේතය මෙම ගැටළුව විසඳයි: වෙබ් අඩවිය http://site.ru/ හි විවෘත වේ

RewriteCond %(REQUEST_URI) /+[^\.]+$ RewriteRule ^(.+[^/])$ %(REQUEST_URI)/ 2.7. URL වෙතින් නාමාවලි නාමාවලිය ඉවත් කිරීම

උදාහරණයක් ලෙස, site.com/directoriya/stranica.html පිටුවෙන් site.com/stranica.html වෙත හරවා යැවීමට ඔබ පහත සඳහන් දෑ ඇතුළත් කළ යුතුය:

RewriteRule ^directoriya/(.+)$ http://site.com/$1

හෝ දෙවන විකල්පය:

RewriteCond %(DOCUMENT_ROOT)/directoriya/$1 -f RewriteRule ^(.*)$ directoriya/$1 2.8. GET පරාමිති හරවා යවන්න

උදාහරණයක් ලෙස, පිටුව /?act=page&id=2 සිට /page-2/ වෙත හරවා යවන්න

RewriteCond %(QUERY_STRING) act=පිටුව RewriteCond %(QUERY_STRING) id=(\d+) RewriteRule .* /page/%1/? ] 2.9. වෙත හරවා යවන්න ජංගම පිටපතවෙබ් අඩවිය m.site.ru

මෙම උදාහරණයේදී, අපි පළමුව පරිශීලකයා වෙබ් අඩවිය විවෘත කළේ දැයි පරීක්ෂා කරන්නෙමු ජංගම උපකරණය(HTTP_USER_AGENT), එවිට අඩවි ලිපිනය m.URL සමඟ ප්‍රතිස්ථාපනය වේ

RewriteCond %(HTTP_HOST) ^(.*)$ නැවත ලියන්නකොන්ඩ් %(HTTP_USER_AGENT) (?i:midp|samsung|nokia|j2me|avant|docomo|novarra|palmos|palmsource|opwv|chtml|pda|mmp|blackberry| symbian|wireless|nokia|hand|mobi|phone|cdm|upb|audio|SIE|SEC|samsung|HTC|mot-|mitsu|sagem|sony|alcatel|lg|eric|vx|NEC|philips|mmm|xx |panasonic|තියුණු|wap|sch|rover|pocket|benq|java|pt|pg|vox|amoi|bird|compal|kg|voda|sany|kdd|dbt|sendo|sgh|gradi|jb|dddi|moto |iphone|android) RewriteRule ^$ http://m.%1 2.10. උප වසමකින් යළි හරවා යැවීම

උදාහරණයක් ලෙස, අපි poddomen.site.ru උප ඩොමේනයේ ඕනෑම පිටුවකින් site.ru ප්‍රධාන වසම වෙත හරවා යවමු.

RewriteCond %(HTTP_HOST) ^poddomen.site.ru$ RewriteRule ^(.*)$ http://site.ru%(REQUEST_URI) 3. htaccess සමඟ වෙනත් උදාහරණ 3.1. IP ලිපිනය සහ බ්‍රවුසරය ප්‍රතික්ෂේප කරන්න

IP ලිපිනය 172.111.222.55 සහිත IE බ්‍රවුසරයක් භාවිතා කරන පරිශීලකයෙකු සඳහා වෙබ් අඩවිය විවෘත කිරීම අපි තහනම් කරන්නෙමු.

RewriteCond %(HTTP_USER_AGENT) MSIE RewriteCond %(REMOTE_ADDR) ^172\.111\.222\.55$ RewriteRule ^.*$ - [F] 3.2. නිශ්චිත ගොනුවක් ප්රතික්ෂේප කරන්න

අපි හැමෝම සඳහා disable_file.html ගොනුව අක්‍රිය කරමු:

සියලුම 3.3 වෙතින් ප්‍රතික්ෂේප කරන්න. එක් IP එකකින් ප්‍රවේශ වීමට ඉඩ දෙන්න

172.111.222.55 එක් IP ලිපිනයකින් පමණක් ප්‍රවේශයට අවසර දෙනු ලැබේ

172.111.222.55 සිට සියලු අවසර ලබා දීම ප්‍රතික්ෂේප කිරීම, ප්‍රතික්ෂේප කිරීමට අවසර දීම 3.4. විවිධ IP වලින් ප්‍රවේශය ප්‍රතික්ෂේප කරන්න

172.112.222.55, 172.113.222.55, 172.114.*.* යන IP ලිපින කිහිපයකින් අඩවියට ප්‍රවේශ වීම ප්‍රතික්ෂේප කරන්න

නියෝගය ප්‍රතික්ෂේප කරන්න, ප්‍රතික්ෂේප කිරීමට ඉඩ දෙන්න. URL විශාල අක්ෂරවල සිට කුඩා ඒවාට හරවා යවන්න

URL හි ඇති සියලුම ලොකු අකුරු කුඩා අකුරු බවට පරිවර්තනය වේ.

RewriteRule - RewriteRule ! - RewriteRule ^([^A]*)A(.*)$ $1a$2 RewriteRule ^([^B]*)B(.*)$ $1b$2 RewriteRule ^([^C]*)C(.* )$ $1c$2 RewriteRule ^([^D]*)D(.*)$ $1d$2 RewriteRule ^([^E]*)E(.*)$ $1e$2 RewriteRule ^([^F]*) F(.*)$ $1f$2 RewriteRule ^([^G]*)G(.*)$ $1g$2 RewriteRule ^([^H]*)H(.*)$ $1h$2 නැවත ලිවීමේ රීතිය ^([^ I]*)I(.*)$ $1i$2 නැවත ලිවීමේ රීතිය ^([^J]*)J(.*)$ $1j$2 RewriteRule ^([^K]*)K(.*)$ $1k$2 නැවත ලිවීමේ රීතිය ^([^L]*)L(.*)$ $1l$2 RewriteRule ^([^M]*)M(.*)$ $1m$2 නැවත ලිවීමේ රීතිය ^([^N]*)N(.*)$ $1n$2 RewriteRule ^([^O]*)O(.*)$ $1o$2 RewriteRule ^([^P]*)P(.*)$ $1p$2 නැවත ලිවීමේ රීතිය ^([^Q]*)Q( .*)$ $1q$2 RewriteRule ^([^R]*)R(.*)$ $1r$2 RewriteRule ^([^S]*)S(.*)$ $1s$2 RewriteRule ^([^T] *)T(.*)$ $1t$2 RewriteRule ^([^U]*)U(.*)$ $1u$2 RewriteRule ^([^V]*)V(.*)$ $1v$2 RewriteRule ^( [^W]*)W(.*)$ $1w$2 නැවත ලිවීමේ රීතිය ^([^X]*)X(.*)$ $1x$2 නැවත ලිවීමේ රීතිය ^([^Y]*)Y(.*)$ $1y $2 RewriteRule ^([^Z]*)Z(.*)$ $1z$2 RewriteRule - [N] RewriteCond %(ENV:HASCAPS) සත්‍ය නැවත ලිවීමේ රීතිය ^/?(.*) /$1

ඇති වැදගත් කරුණක්වෙබ් අඩවිය සැකසීමේදී. වැරදි ලෙස වින්‍යාස කර ඇති යළි-යොමුවීමක් වෙබ් අඩවියේ සෙවුම් ප්‍රතිඵලවලට විශාල හානියක් විය හැක. ඔබට ස්ථීර යළි-යොමුවීම් 301 භාවිතා කිරීමට සිදුවන වඩාත් පොදු අවස්ථා:

  • අඩවි ලිපිනය වෙනස් කිරීම - ඔබ ඔබේ වසම මිලදී ගෙන site.example.com සිට site.ru වෙත යාමට තීරණය කර ඇත.
  • දර්පණ ඇලවීම - ඔබේ වෙබ් අඩවිය www.site.ru සහ site.ru හි තිබේ නම්, සෙවුම් යන්ත්රමෙය විවිධ අඩවි දෙකක් ලෙස සැලකිය හැක, එබැවින් පළමුව ඔබ ප්‍රධාන දර්පණය (www සමඟ හෝ www නොමැතිව) තීරණය කර ප්‍රධාන කැඩපත වෙත යළි-යොමුවීම් සැකසීමට අවශ්‍ය වේ.
  • පිටුවක් (එකක් හෝ වැඩි ගණනක්) එහි ලිපිනය වෙනස් කළ විට, යම් අවස්ථාවක දී http://example.com/index.php?option=com_content&task=view&id=23&Itemid=1 යන ලිපින හොඳ නැති බව පැහැදිලි වූ අතර, ඒවාට අවශ්‍ය http://example.com/sport/news12 බවට පරිවර්තනය වේ, නමුත් සෙවුම් යන්ත්‍ර දර්ශකයේ ස්ථාන අහිමි වීම අනුකම්පාවකි (මෙය ඔවුන් සඳහා නව ලිපියක් වනු ඇත).
  • අනුපිටපත් පිටු සමඟ කටයුතු කිරීමට තවත් ක්රමයක්

වැදගත්: පිටුව තාවකාලිකව ගෙන ගොස් තිබේ නම්, 302 භාවිතා කරන්න තාවකාලිකව ගෙන ගියා. මෙම අවස්ථාවෙහිදී, පිටු ඒකාබද්ධ නොවන අතර යළි-යොමුවීම් සහිත පිටුව සැමවිටම ප්‍රතිසාධනය කළ හැක.

apache (.htaccess) සඳහා ස්ථිර යළි-යොමුවීම් 301

රේඛා පසු වහාම ඔබ නීති ඇතුළත් කළ යුතුය:

RewriteEngine On RewriteBase / # සම්පූර්ණ මාර්ගය කපා හැරීමට, සේවාදායක මූලයේ සිට අඩවි මූලය දක්වා

නිත්‍ය ප්‍රකාශන භාවිතයෙන් නීති නියම කර ඇත; වාක්‍ය ඛණ්ඩය සිහිපත් කරන්න:

  • මෙටාඅක්ෂර, රටාවක අනුලකුණු හෝ “ලේබල්” කණ්ඩායම් නියම කිරීම සඳහා:
    • ^ - රේඛා ආරම්භක ලකුණ,
    • $ - පේළියේ අග ලකුණ,
    • ! - ප්රතික්ෂේප කිරීම,
    • \ - බේරුම් ස්ලැෂ්, එය අනුගමනය කරන මෙටාඅක්ෂරය සාමාන්‍ය අක්ෂරයක් ලෙස සලකා බැලීමට ඔබට ඉඩ සලසයි,
    • . - dot, ඕනෑම චරිතයක් දක්වයි, නමුත් එකක් පමණි,
    • () - කණ්ඩායම් කිරීම.
  • විකරණය කරන්නන් සාමාන්‍ය අක්ෂර, මෙටාචාක්‍රැක්ටර් හෝ ඒවායේ කණ්ඩායම් වලට පසුව තබා ඇත:
    • ? - සංකේතය 0 හෝ 1 වතාවක් පුනරාවර්තනය වේ,
    • * - 0 සිට 65536 වාරයක් දක්වා නැවත නැවතත්,
    • + - 1 සිට 65536 වාරයක් දක්වා නැවත නැවතත්.
  • කොඩි මෙම රීතිය සඳහා අමතර විකල්ප නිර්වචනය කරයි:
    • NC - (nocase) සිද්ධි පරීක්ෂාව අක්‍රීය කරයි.
    • R - (යළි-යොමුවීම්) පරිවර්තන ක්‍රියාවලිය නවත්වන අතර මෙම පිටුවට යළි-යොමු කිරීමක් ලෙස ප්‍රතිඵලය සේවාදායක බ්‍රවුසරයට ලබා දෙයි (302, තාවකාලිකව ගෙන යන ලදී).
      මෙම ධජය සමඟින් ඔබට වෙනස් ප්‍රතිඵල කේතයක් සඳහන් කළ හැක, උදාහරණයක් ලෙස R=301 කේතය 301 (ස්ථිර ලෙස ගෙන යන ලද) සමඟ යළි-යොමුවීමක් ලබා දෙනු ඇත. ඔබ තේරුම් ගත් පරිදි, අපට අවශ්ය වන්නේ මෙයයි.
    • L - (අවසාන) පරිවර්තන ක්රියාවලිය නවත්වන අතර වත්මන් සබැඳිය අවසන් ලෙස සලකනු ලැබේ.

වඩාත් පොදු තත්වයන් සලකා බලන්න:

RewriteCond %(HTTP_HOST) ^www\.(.*) RewriteRule ^(.*)$ http://%1/$1 RewriteCond යන්නෙන් දැක්වෙන්නේ, ගැලපෙන්නේ නම්, RewriteRule රීතිය ක්‍රියාත්මක කරන කොන්දේසියයි. index.php (html) සිට ප්‍රධාන පිටුවට යළි-යොමු කරන්න RewriteCond %(THE_REQUEST) ^(3,9)\ /index\.(php|html|htm)\ HTTP/ RewriteRule ^(.*)index\.(php| html |htm)$ $1 අඩවි ව්‍යුහය වෙනස් කිරීමේදී යළි-යොමු කරන්න RewriteRule ^post/category/(.*)$ blog/category/$1 RewriteRule ^post/(.*)$ blog/post/$1 PHP හි ස්ථිර යළි-යොමුවීම් 301

බ්‍රව්සරය ඉල්ලා ඇති පිටුව http://site.ru වෙත හරවා යැවිය යුතු බව දැනුම් දීමට, පහත විධානයන් ක්‍රියාත්මක කරන්න:

ශීර්ෂකය("HTTP/1.1 301 ස්ථිරව ගෙන යන ලදී"); ශීර්ෂකය ("ස්ථානය: http://site.ru"); පිටවීම();

nginx සඳහා ස්ථිර යළි-යොමුවීම් 301

යළි-යොමුවීම් රීති සේවාදායක කොටසෙහි විස්තර කර ඇත.

www.site.ru සිට site.ru සේවාදායකය වෙත හරවා යවන්න (සවන් දෙන්න 80; server_name www.site.ru; නැවත ලියන්න ^ http://site.ru$request_uri? ස්ථිර; )

හෝ සාමාන්ය රීතියසියලුම අඩවි සඳහා:

සේවාදායකය (server_name ~^(?! www\.); නැවත ලියන්න ^ http://www.$host$request_uri ස්ථිර; )

site.ru සිට www.site.ru සේවාදායකය වෙත යළි-යොමුවීම් (සවන් දෙන්න 80; server_name site.ru; නැවත ලියන්න ^ http://www.site.ru$request_uri? ස්ථිර; ) index.php සිට ප්‍රධාන පිටුවට යළි-යොමුවන ස්ථානය = / index.php (($request_uri = /index.php) නම් (නැවත ලියන්න ^ http://$host? ස්ථිර;#301 යළි-යොමුවීම් ) fastcgi_pass unix:/tmp/fastcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILErotoNAME $ fastcgi_script_name; fastcgi_params ඇතුලත් කරන්න;)

ස්ථීර ලෙස ගෙන යන ලද 301 තත්ත්වය සහිත HTTP තත්ත්‍ව කේතයක් පෙන්නුම් කරන්නේ ඉල්ලන ලද ලේඛනය ශීර්ෂයේ ස්ථාන ක්ෂේත්‍රයේ දක්වා ඇති නව URI වෙත ස්ථිරවම ගෙන ගොස් ඇති බවයි.

එය කුමක් සදහාද?

පළමුවෙන්ම, වෙබ් අඩවියක ඩොමේන් නාමය වෙනස් කිරීමේදී, වෙබ් අඩවියේ ලිපිනය වෙනස් කිරීම පිළිබඳව සෙවුම් යන්ත්‍රවලට දැනුම් දීම අවශ්‍ය වේ. දෙවනුව, වෙබ් අඩවියේ නම www සමඟ සහ නැතිව ඒකාබද්ධ කිරීමට. තෙවනුව, නව වෙබ් අඩවියකට පිටු ශ්‍රේණිගත කිරීම ඉක්මනින් මාරු කිරීම.

PHP

ක්රමය එක

දෙවන ක්රමය

පර්ල්

ක්රමය එක

$cgi = නව CGI; මුද්‍රණය $cgi->යළි-යොමුවීම්("http://www.example.com/");

දෙවන ක්රමය

#!/usr/bin/perl -w භාවිතා දැඩි; මුද්‍රණය "තත්ත්වය: 301 ස්ථිරව ගෙන යන ලදී\n"; "ස්ථානය: http://www.example.com/\n\n" මුද්රණය කරන්න; පිටවීම;

ASP.NET

ක්රමය එක

පුද්ගලික void Page_Load(වස්තු යවන්නා, System.EventArgs e) (Response.Status = "301 ස්ථිරව ගෙන යන ලදී"; Response.AddHeader("ස්ථානය","http://www.example.com"); )

දෙවන ක්රමය (4.0 අනුවාදයෙන්)

RedirectPermanent("http://www.example.com");

ASP Ruby on Rails def do_something headers["Status"] = "301 ස්ථීර ලෙස ගෙන යන ලදී" යළි-යොමුවීම්_"http://www.example.com/" end ColdFusion Java (JSP) Apache Web Server (.htaccess)

පළමු ක්රමය (mod_alias, යළි-යොමුවීම්)

යළි-යොමුවීම් 301 / http://www.example.com

දෙවන ක්රමය (mod_alias, RedirectPermanent)

Redirect Permanent / http://www.example.com

තුන්වන ක්රමය (mod_alias, ස්ථිර යළි-යොමුවීම්)

ස්ථිරව හරවා යවන්න / http://www.example.com

ක්‍රමය හතර (mod_alias, RedirectMatch)

RedirectMatch 301 ^(.*)$ http://www.example.com/

පස්වන ක්රමය (mod_rewrite)

විකල්ප +FollowSymLinks RewriteEngine On RewriteBase / RewriteRule ^(.*)$ http://www.example.com/$1




ඉහල