URL Redirection သည်ခေတ်သစ် web application များတွင်ဘုံလိုအပ်ချက်ဖြစ်သည်။ SEO optimization ဖြစ်စေသည်ဖြစ်စေအသုံးပြုသူအတွေ့အကြုံသည်တိုးတက်မှုသို့မဟုတ်အဆက်အသွယ်အဟောင်းများကိုလိုက်လျောညီထွေဖြစ်အောင်လုပ်ခြင်း, နောက်ခံဖွံ့ဖြိုးမှုတွင်အသုံးပြုသောဘာသာစကားသည် PHP ၏ Built-in Parse_Url function သည် URLs များကိုပြုပြင်ရန်အတွက်အစွမ်းထက်။ အတိုချုပ်ဖျောက်ရန်ကိရိယာများဖြစ်သည်။ ဤဆောင်းပါးတွင်ဆာဗာဘေးထွက်ရှိ URL မှ Redirect Redirop Redirops ကိုထိရောက်စွာကိုင်တွယ်ရန် Parse_Url function ကိုအသုံးပြုရန်အတိမ်အနက်ကိုလေ့လာပါမည်။
PHP ၏ Parse_url function ကို၎င်းတို့၏အစိတ်အပိုင်းများ (အစီအစဉ်, Host, Path query, query, port စသည်ဖြင့်အသုံးပြုသည်။ အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -
$url = "https://gitbox.net/user/profile?id=123";
$parts = parse_url($url);
print_r($parts);
ရလဒ်ရလဒ် -
Array
(
[scheme] => https
[host] => gitbox.net
[path] => /user/profile
[query] => id=123
)
၎င်းသည် URL ၏မတူညီသောအစိတ်အပိုင်းများကိုပြောင်းလွယ်ပြင်လွယ်ပြီးလိုအပ်သည့်အတိုင်းယုတ္တိဗေဒဆိုင်ရာအပြောင်းအလဲများကိုပြန်လည်ရယူရန်ခွင့်ပြုသည်။
အချို့သောဝက်ဘ်ဆိုက်များသည် WWW နှင့်တောင်းဆိုမှုများအားလုံးကို redirect လုပ်လိုကြသည်။ www မပါဘဲဗားရှင်းရန်။ သို့မဟုတ်မဟုတ်ရင်ထပ်ခါတလဲလဲပါဝင်မှုကိုရှောင်ရှားပါ။
$requestUrl = "http://www.gitbox.net/blog/post?id=42";
$parts = parse_url($requestUrl);
if (strpos($parts['host'], 'www.') === 0) {
$newHost = str_replace('www.', '', $parts['host']);
$newUrl = $parts['scheme'] . '://' . $newHost . $parts['path'];
if (isset($parts['query'])) {
$newUrl .= '?' . $parts['query'];
}
header("HTTP/1.1 301 Moved Permanently");
header("Location: $newUrl");
exit;
}
တစ်ခါတစ်ရံဝက်ဘ်ဆိုက်ကိုပြန်လည်ပြုပြင်ပြီးနောက်လမ်းကြောင်းတည်ဆောက်ပုံပြောင်းလဲသွားသည်။ လမ်းကြောင်းဟောင်းကိုယုတ္တိရှိသောနေရာအသစ်သို့ပြန်ပို့ရန်လိုအပ်သည်။
$requestUrl = "https://gitbox.net/old-section/page.php";
$parts = parse_url($requestUrl);
$redirectMap = [
'/old-section/page.php' => '/new-section/page'
];
if (isset($redirectMap[$parts['path']])) {
$newUrl = $parts['scheme'] . '://' . $parts['host'] . $redirectMap[$parts['path']];
header("HTTP/1.1 301 Moved Permanently");
header("Location: $newUrl");
exit;
}
လုံခြုံရေးကိုတိုးတက်စေရန်အတွက်ဝက်ဘ်ဆိုက်များစွာသည် HTTPS သို့ကူးပြောင်းရန်ရွေးချယ်ကြသည်။
$requestUrl = "http://gitbox.net/account/login";
$parts = parse_url($requestUrl);
if ($parts['scheme'] === 'http') {
$secureUrl = 'https://' . $parts['host'] . $parts['path'];
if (isset($parts['query'])) {
$secureUrl .= '?' . $parts['query'];
}
header("HTTP/1.1 301 Moved Permanently");
header("Location: $secureUrl");
exit;
}
အချို့ဖြစ်ရပ်များတွင် URL Redirection ၏ပစ်မှတ်ကို parameters တွေကို အခြေခံ. dynamally တွက်ချက်သည်။ ဥပမာအားဖြင့်, Lang Parameters နှင့်အညီဘာသာစကားများကို toggle toggle toggle:
$requestUrl = "https://gitbox.net/index.php?lang=fr";
$parts = parse_url($requestUrl);
parse_str($parts['query'], $query);
if (isset($query['lang'])) {
$langSubdomain = $query['lang'] . '.gitbox.net';
$newUrl = $parts['scheme'] . '://' . $langSubdomain . $parts['path'];
header("Location: $newUrl", true, 302);
exit;
}
ပွင့်လင်းသော redirect တိုက်ခိုက်မှုများကိုကာကွယ်ရန် Whitelististing ယန္တရားကိုသုံးပါ အသုံးပြုသူပေးထားသော URL ကို Jump Target အဖြစ်တိုက်ရိုက်အသုံးပြုခြင်းကိုရှောင်ကြဉ်ပါ။
ကျိုးကြောင်းဆီလျော် 301 နှင့် 302 status codes တွေကိုသုံးပါ
301 သည်အမြဲတမ်းရွေ့လျားမှုများပြုလုပ်ခဲ့သည် ။
302 တွေ့ရှိချက် - login ပြီးနောက်ခုန်ကဲ့သို့သောအခြေအနေများအတွက်အသုံးပြုသောယာယီ redirection ။
cache control <br> <br> 301 redirects အတွက် browser (browsers) နှင့်ရှာဖွေရေးအင်ဂျင်များသည်တုန့်ပြန်မှုများကို cache တုံ့ပြန်ခြင်းကိုပြုလုပ်နိုင်ပြီး၎င်းတို့ကိုအသုံးပြုသည့်အခါသက်ရောက်မှုကိုသေချာစွာအကဲဖြတ်သင့်သည်။
Redirect Redirect Redirect Record <br> မှတ်တမ်းရှိခုန်ရင်းမြစ်များနှင့်ပစ်မှတ်များကိုမှတ်တမ်းတင်ခြင်းပြ problems နာများကိုရှာဖွေဖော်ထုတ်ခြင်းနှင့်အသုံးပြုသူအပြုအမူများကိုခွဲခြမ်းစိတ်ဖြာရန်ကူညီသည်။
Parse_url function ကိုမှတစ်ဆင့် PHP သည် URLs များကိုခွဲခြမ်းစိတ်ဖြာရန်ပေါ့ပါးပြီးထိရောက်သောနည်းလမ်းကိုပေးသည်။ ဤကိရိယာဖြင့် developer များသည် server-side url redirection logic ကိုပိုမိုအကောင်အထည်ဖော်နိုင်ပြီးဆိုက်ပြောင်းလွယ်ပြင်လွယ်မှုနှင့်ထိန်းသိမ်းမှုကိုတိုးတက်စေသည်။ Protocol switching, path quathment or languiting ားဖြတ်ညှိနှိုင်းမှုဖြစ်စေသည်ဖြစ်စေ, Parse_Url ၏ဆင်ခြင်တုံတရားဆိုင်ရာလျှောက်လွှာသည်ကျွန်ုပ်တို့အားပိုမိုအသိဉာဏ်ရှိသော,