System

Introduction to Hypertext Access(htaccess)

မင်္ဂလာပါရှင့်။
Spiceworks Myanmar မှာ Web Designer အဖြစ် တာဝန်ယူလုပ်ကိုင်နေတဲ့ ဆုရည်ထွန်းပါ။
ဒီတစ်ခေါက်ရွေးချယ်ထားတာကတော့ Website တစ်ခုမှာ directory ဒါမှမဟုတ် access နဲ့ပတ်သက်ပြီး ထိန်းချုပ်ဖို့အတွက် အသုံးပြုတဲ့ file တစ်ခုဖြစ်တဲ့ Hypertext Access File(.htaccess file) အကြောင်းလေးပါ။ Web development ပိုင်း လုပ်ကိုင်နေတဲ့လူတွေဆိုရင် နာမည်ကို ကြားဖူးပြီး တစ်ခုခုလုပ်နိုင်တယ်ဆိုတာကို သိကြပါတယ်။ ဒါပေမယ့် ဖိုင်အသုံးပြုနည်းကို အတိအကျ မရှင်းပြနိုင်သူတွေရှိနေမှာ သေချာပါတယ်။
အဲ့ဒီအတွက် ဒီတစ်ခေါက်မှာတော့ အားလုံးအတွက် အသုံးဝင်မယ်ထင်လို့ ရုံးမှာအသုံးများတဲ့ Hypertext Access File(.htaccess) နဲ့ပတ်သက်ပြီး ဘယ်လိုသတ်မှတ်နိုင်လဲ၊ ဘယ်လိုရေးရမလဲ၊ ဘယ်လို setup လုပ်ရမလဲဆိုတာနဲ့ ပတ်သက်ပြီး မိတ်ဆက်ပေးချင်ပါတယ်။

.htaccess ဆိုတာ ဘာလဲ။

.htaccess ဆိုတာ “Apache” ကို အသုံးပြု၍ web server ၏ လမ်းညွှန်တစ်ခုစီအတွက် setting များကို ထိန်းချုပ်နိုင်သည့် ဖိုင်တစ်ခု ဖြစ်ပါတယ်။ ပုံမှန်အားဖြင့် Apache ၏ web server ထိန်းချုပ်မှုကို “httpd.conf” တွင် လုပ်ဆောင်သော်လည်း root လုပ်ပိုင်ခွင့်ရှိသော server စီမံခန့်ခွဲသူတစ်ဦးသာ လုပ်ဆောင်ဖို့ အခွင့်အာဏာရှိပါတယ်။
တကယ်လို့ web server setting များကို စိတ်ကြိုက်ပြင်ဆင်လိုပါက Apache တွင် .htaccess ဖိုင်ကို သိမ်းဆည်းခြင်းဖြင့် (သို့) .htaccess ဖိုင်ကို ဝင်ပြင်ခြင်းဖြင့် ၎င်းကို ထိန်းချုပ်နိုင်ပါတယ်။

server တွင် .htaccess ဟုခေါ်သောဖိုင်ကို ထည့်သွင်းခြင်းဖြင့်
1. web browser မှ တောင်းဆိုမှုကို တုံ့ပြန်သည့်အနေဖြင့် web page ကို ပြသရန်၊
2. page တစ်ခုအစား အခြားစာမျက်နှာကို ပြသရန်၊
3. web page ကိုပြသသည့် အခြေအနေများကို တင်ပြရန် ထိန်းချုပ်နိုင်ပါတယ်။

.htaccess အသုံးပြုမှုအခြေအနေများ

.htaccess သည် မည်သည့် web server သို့မဟုတ် website တွင်မဆို အသုံးပြုနိုင်သော ဖိုင်မဟုတ်ပါ။ .htaccess ဖိုင်ကို အသုံးပြုရန် စဉ်းစားနေပါက အောက်ပါအခြေအနေများနှင့် ကိုက်ညီကြောင်း သေချာစေရန် လိုအပ်ပါတယ်။

1. ကိုယ်သုံးတဲ့ web server က “Apache” ကို အသုံးပြုနေသလား?

Web server တစ်ခုက web server အဖြစ် လုပ်ဆောင်နိုင်ရန် web server software တစ်ခု မရှိမဖြစ်လိုအပ်ပါတယ်။ Apache အပြင် IIS ကဲ့သို့သော Microsoft software များလည်း ရှိပါတယ်။ အကယ်၍ IIS ကဲ့သို့သော အခြား software ကိုအသုံးပြုနေပါက server တွင် .htaccess ဖိုင်ကို တင်ထားခြင်းသည် အလုပ်မဖြစ်ပါ။
ထို့ကြောင့် web server ကို Apache အသုံးပြုထားကြောင်း သေချာဖို့လိုပါမယ်။

2. .htaccess ကို ထည့်သွင်းဖို့ permission ဖွင့်ထားသလား?

“Apache” ကို အသုံးပြုနေလျှင်ပင် server setting များပေါ်မူတည်၍ .htaccess မရနိုင်ပါ။ အငှား server များကဲ့သို့သော ကုမ္ပဏီမှ စီမံခန့်ခွဲခြင်းမပြုသော server များသည် ၎င်းတို့၏ မူရင်း setting များတွင် .htaccess ကန့်သတ်ချက်များ ရှိနိုင်ပါသည်။ဒါကြောင့် .htaccess file ကို server မှာ ထည့်သွင်းဖို့ permission ရှိမရှိကို စစ်ဆေးထားဖို့လည်း လိုအပ်ပါတယ်။

.htaccess ဖိုင်ကို ဖန်တီးနည်း

.htaccess ဖိုင်တစ်ခုဖန်တီးခြင်းက အလွန်လွယ်ကူပါတယ်။
.htaccess က စာသားဖိုင်ဖြစ်တာကြောင့် Notepad ကဲ့သို့သော text editor အား ဖွင့်ပြီး ၎င်းကို .htaccess ဖိုင်အဖြစ် ဖိုင်အမည် “.htaccess” ဖြင့် သိမ်းဆည်းပါ။

ဒါပေမယ့် .htaccess ၏ ဖိုင်အမည်တစ်ခုဖြင့် သိမ်းဆည်းရန် ကြိုးစားပါက “Cannot save with a file name with start with” ကဲ့သို့သော သတိပေးမက်ဆေ့ချ်တစ်ခု ပေါ်လာပြီး သိမ်းဆည်းနိုင်မည်မဟုတ်ပါ။
ထိုအခြေအနေတွင် test.htaccess သို့မဟုတ် htaccess.txt ကဲ့သို့သော .htaccess မှလွဲ၍ အခြားဖိုင်အမည်တစ်ခုဖြင့် တစ်ကြိမ်ရေးပါ၊ ၎င်းကို သိမ်းဆည်းပါ၊ ဖိုင်ကို server သို့ upload လုပ်ပါ၊ ထို့နောက် ဖိုင်အမည်ကို “.htaccess” သို့ ပြောင်းပါက ပြဿနာမရှိဘဲ အလုပ်လုပ်မှာ ဖြစ်ပါတယ်။

.htaccess ကို အသုံးပြုနည်း

1. Basic Authentication

ကိုယ့်ရဲ့ Website ကို id/password သိတဲ့သူပဲ access လုပ်ခွင့်ရအောင်ပြုလုပ်ချင်တဲ့အခါမှာ အောက်ပါအတိုင်း “.htaccess” ဖိုင် ပြုလုပ်ရမှာ ဖြစ်ပါတယ်။

AuthUserfile /path/.htpasswd
AuthGroupfile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user

အထက်တွင်ဖော်ပြထားသော “AuthUserFile” တွင်ဖော်ပြထားသော path ဆိုတာကတော့ နမူနာ အနေနဲ့ထည့်ပေးထားတာဖြစ်ပြီး “.htpasswd” ထားရှိတဲ့ file path လမ်းကြောင်းနှင့် အစားထိုးပေးရန်လိုအပ်ပါတယ်။
ထို့ပြင် “.htpasswd” ဟုခေါ်သော ဖိုင်တစ်ခုလည်း လိုအပ်မှာဖြစ်ပါတယ်။ (ဖန်တီးမှုလုပ်ငန်းစဉ်သည် အထက်ဖော်ပြပါ .htaccess ဖိုင်ဖန်တီးမှုလုပ်ငန်းစဉ်နှင့် အတူတူပင်ဖြစ်ပါသည်။)
“.htpasswd” တွင် အောက်ပါအကြောင်းအရာများကို ရေးပါ။

id:password

id နေရာမှာ မိမိထားချင်သော username ထား၍ အသုံးပြုလို့ရပင်မယ့် မိမိထားချင်သော password ကိုတော့ encode generator အသုံးပြုပြီးမှ ထည့်သွင်းအသုံးပြုရမှာ ဖြစ်ပါတယ်။

2. 301 Redirect

301 Redirect ဆိုတာ အသုံးအများဆုံး directory လွှဲပြောင်းသော နည်းလမ်းဖြစ်ပြီး web page အဟောင်းမှ page အသစ်သို့ အမြဲတမ်းလွှဲပြောင်းခြင်းဟု ခေါ်ပြီး URL ကို ပြောင်းလဲခြင်း သို့မဟုတ် Domain ကို လွှဲပြောင်းရာတွင် အသုံးပြုပါတယ်။

○ ဥပမာ- 301 ကို http://example.com/old.html စာမျက်နှာမှ http://example.com/new.html သို့ ပြန်ညွှန်းသည့်အခါ .htaccess ဖိုင်မှာ အောက်ပါအတိုင်း ထည့်သွင်းအသုံးပြုရမှာဖြစ်ပါတယ်။

RewriteEngine on
RewriteRule ^old.html$ http://example.com/new.html [R=301,L]

3. URL Normalization

URL normalization ဆိုတာ တူညီတဲ့ URL အများကြီးကို unify ဖြစ်သွားဖို့အတွက် ပြုလုပ်ရာမှာ အသုံးပြုပါတယ်။

  • http://example.com/
  • http://example.com/index.html
  • http://www.example.com/

○ ဥပမာ: Unification with and without index.html (when unifying without index.html)

RewriteEngine on
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://example.com/$1 [R=301,L]

○ ဥပမာ: Unification with and without www (when unifying without www)

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

စကားမစပ် အကယ်၍ www နှင့် ပေါင်းစည်းလိုပါက .htaccess ဖိုင်မှာ အောက်ပါအတိုင်း ထည့်သွင်းအသုံးပြုရမှာဖြစ်ပါတယ်။

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

4. Access restrictions from specific IP addresses and domains

သီးခြား IP လိပ်စာများ သို့မဟုတ် Domain များမှ ဝင်ရောက်ခွင့်ကို ကန့်သတ် သို့မဟုတ် ငြင်းပယ်လိုသည့်အခါမှာလည်း အသုံးပြုနိုင်ပါတယ်။
ဆန့်ကျင်ဘက်အနေနှင့် သတ်မှတ်ထားသော IP လိပ်စာ သို့မဟုတ် Domain တစ်ခုမှသာလျှင် ဝင်ရောက်ခွင့်ပြုရန်လည်း ဖြစ်နိုင်ပါတယ်။

အောက်ပါသည် IP လိပ်စာနှင့် Domain ကိုသတ်မှတ်ခြင်း၏ ဥပမာတစ်ခု ဖြစ်ပါတယ်။

  • IP Address:192.168.1.1
  • Domain: example.com

■ If you want to restrict access

order allow,deny
allow from all
deny from example.com
deny from 192.168.1.1

■ If you want to allow access

order deny,allow
deny from all
allow from example.com
allow from 192.168.1.1

ထို့အပြင် test-file.html ဟုခေါ်သော ဖိုင်တစ်ခုတည်းအတွက် သတ်မှတ်လိုပါက အောက်ပါအတိုင်းရေးပါ။

အဆုံးထိ ဖတ်ရှုပေးတဲ့အတွက် ကျေးဇူးတင်ပါတယ်။
အခုမှစလေ့လာမယ့် လူတွေအတွက် တစ်စုံတစ်ခုအကျိုးရှိမယ်လို့ မျှော်လင့်ပါတယ်။

Hello

Leave a Reply

Your email address will not be published. Required fields are marked *