လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Output_add_rewrite_var သည် URL ကိုမှန်ကန်စွာပြန်လည်ရေးရန်မအောင်မြင်သောပြ issue နာကိုဖြေရှင်းပါ

Output_add_rewrite_var သည် URL ကိုမှန်ကန်စွာပြန်လည်ရေးရန်မအောင်မြင်သောပြ issue နာကိုဖြေရှင်းပါ

gitbox 2025-05-29

1 ။ ' output_add_rewrite_var ၏အလုပ်လုပ်နိဒါန်းနိဒါန်း

outpropd_ad_rewrite_var သည် PHP တွင်သတ်မှတ်ထားသော query variable နှင့်၎င်း၏တန်ဖိုးကို output urls အားလုံးအတွက်အလိုအလျောက်ဖြည့်ဆည်းရန်အသုံးပြုသော PHP တွင် built-in function ဖြစ်သည်။ ဘုံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -

 <?php
session_start();
output_add_rewrite_var('PHPSESSID', session_id());
?>

ဤလုပ်ဆောင်ချက်သည်စာမျက်နှာ၏ output ပါဝင်သည့် unls အားလုံးကို scan လုပ်ပြီး parameter phpsessid = xxxx ကို အလိုအလျောက်ဖြည့်ဆည်းလိမ့်မည်။


2 ။ URL ပြန်လည်ရေးရန် URL ပြန်ရေးရန်အဘယ်ကြောင့်ပုံမှန်အကြောင်းပြချက်များ

  1. output ကြားခံဖွင့်မထားဘူး
    output_add_rewrite_var သည် PHP ၏ output buffering ယန္တရားပေါ်တွင်မူတည်သည်။ အကယ်. output buffering ကို enable မလုပ်ပါက function သည်အစားထိုးရန်အတွက် output ကိုအကြောင်းအရာများကိုဖမ်းယူ။ မရပါ။

  2. URL အမျိုးအစားသည်စံသတ်မှတ်ခြင်းသို့မဟုတ် encoding ကိစ္စများမဟုတ်ပါ အကယ်. စာမျက်နှာရှိ URL သည်ပုံမှန် http သို့မဟုတ် https format နှင့်မတူပါကအထူးအက္ခရာများရှိသည်သို့မဟုတ်အထူးအက္ခရာများရှိသည်

  3. dynamically ထုတ်လုပ်ထားသော URL များကိုစာမျက်နှာတွင်အသုံးပြုသည်
    အချို့သော URLs များသည် dynamical bynamically dynamically dynamically javaScript မှတစ်ဆင့်ပြောင်းလဲခြင်း, JavaScript မှတစ်ဆင့် spliced ​​server_add_rewrite_var သည် ဆာဗာဘက်တွင်လုပ်ဆောင်သောအခါဤပြောင်းလဲမှုများကိုမရိပ်မိနိုင်ပါ။

  4. HTTP header ကိုပို့ခြင်းသို့မဟုတ် output interupr အုတ်မြစ်တည်ရှိသည် output_add_rewrite_var ကို မခေါ်ခင်စာမျက်နှာက output ကိုပေးပို့ပါက function ကိုစနစ်တကျအစားထိုးမည်မဟုတ်ပါ။


3 ။ အသေးစိတ်ဖြေရှင်းချက်ရှင်းပြချက်

1 ။ ဖွင့ ်. output buffering ကိုမှန်ကန်စွာအသုံးပြုပါ

output buffering ကို code တွင်ဖွင့်ထားကြောင်းသေချာအောင်လုပ်ပါ။ ဥပမာ - သင့်လျော်သောနေရာ၌ output_add_rewrite_var ကို သင့်လျော်သောနေရာ၌ခေါ်ဆိုပါ။

 <?php
ob_start();
session_start();
output_add_rewrite_var('PHPSESSID', session_id());
// စာမျက်နှာအကြောင်းအရာ output ကို
echo '<a href="http://gitbox.net/path/page.php">ဝင်ရောက်ရန်ကိုနှိပ်ပါ</a>';
ob_end_flush();
?>

ဤသည် function ကိုမှန်မှန်ကန်ကန်ထုတ်ယူနှင့် parameters တွေကိုထပ်ဖြည့်ကြောင်းသေချာသည်။

2 ။ အခြားရွေးချယ်စရာတစ်ခုအဖြစ်လက်စွဲ parameters တွေကို splicing splicing parameters တွေကို

အကယ်. output_add_rewrite_var သည် လိုအပ်ချက်များနှင့်မကိုက်ညီပါက URL ကိုထုတ်လုပ်သည့်အခါ parameters များကိုသင်ကိုယ်တိုင်ထပ်မံဖြည့်စွက်နိုင်သည်။

 <?php
session_start();
$sessionId = session_id();
echo '<a href="http://gitbox.net/path/page.php?PHPSESSID=' . urlencode($sessionId) . '">ဝင်ရောက်ရန်ကိုနှိပ်ပါ</a>';
?>

၎င်းသည်ဒုက်ခဖြစ်သော်လည်း၎င်းသည်တိုက်ရိုက်နှင့်ထိရောက်သောနည်းလမ်းဖြစ်သည်။

3 ။ parameter ကူးယူရန်ကူညီရန် Apache သို့မဟုတ် Nginx ကိုသုံးပါ

url rewriting သည်ပိုမိုရှုပ်ထွေးသည့်အခြေအနေများသည်ပိုမိုရှုပ်ထွေးသည့်အခြေအနေများအတွက် Apache ၏ ids ၏အလိုအလျောက်ပေးပို့ခြင်းကိုအကောင်အထည်ဖော်ရန်အတွက်ဆာဗာဖွဲ့စည်းမှုကိုပေါင်းစပ်နိုင်သည်။

 RewriteEngine On
RewriteCond %{QUERY_STRING} !PHPSESSID=
RewriteRule ^(.*)$ $1?PHPSESSID=%{HTTP:Cookie} [QSA,L]

၎င်းသည် PHP အဆင့်တွင်မှီခိုမှုကိုလျော့နည်းစေသည်။

4 ။ JavaScript တွင် URL များကို dynamict unlutture_ad_rewrite_var ကိုမှီခိုခြင်း

dvernically ထုတ်လုပ်ထားသောလင့်များအတွက်, မျိုးဆက်များအတွင်း parameters များကိုသင်ကိုယ်တိုင်အသုံးချနိုင်သည်။


4 ။ အကျဉ်းချုပ်

  • output_add_rewrite_var သည် စာမျက်နှာ output ကိုမှန်ကန်စွာဖမ်းယူနိုင်ကြောင်းသေချာစေရန် output buffer ကိုဖွင့်ထားကြောင်းသေချာပါစေ။

  • URL သည်အထူးဇာတ်ကောင် 0 င်ရောက်စွက်ဖက်မှုကိုအသိအမှတ်ပြုရန်အတွက် format သတ်မှတ်ချက်များလိုအပ်သည်။

  • Dynamic URLs များအတွက် server-side တွင်အလိုအလျောက်အသုံးချခြင်းကိုအလျှင်းခြင်းဖြင့်အလိုအလျှောက်မထားပါနှင့်, ရှေ့ - အဆုံးသို့မဟုတ်လက်စွဲ splicing ကိုသုံးပါ။

  • ဆာဗာပြန်လည်ရေးခြင်းစည်းမျဉ်းများကိုပေါင်းစပ်ခြင်းက URL Parameter ပို့ဆောင်ခြင်း၏တည်ငြိမ်မှုကိုတိုးတက်စေသည်။

Output_add_rewrite_var ကို သုံးသောအခါ URL ကိုမှန်ကန်စွာပြန်လည်ရေးနိုင်အောင်ပြုလုပ်နိုင်သည်။ parameter များကိုပုံမှန်အတိုင်းပြန်ပို့နိုင်သည်။