ให้เรตสมาชิก: 1 / 5

ดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 
การใช้ ประโยชน์ ของ .htaccess? เช่น block IP Blocking bad bots ป้องกันการ Hot link
ไฟล์ .htaccess นั้นเป็นไฟล์ที่ใช้ในการ override configuration ของ Apache
ซึ่งมีการใช้คำจำกัดความในภาษาอังกฤษว่า "Distributed Configuration File" โดยการทำงานจะเป็นการ configuration ของแต่ละ directory ทั้งหมดนี้ใน configuation file หลักจะต้องมีการ set AllowOverride ด้วยนะครับ
มาดูการใช้งานกันครับ
  1. Authentication เราสามารถทำการ Authentication สำหรับ user ได้โดยการใช้ไฟล์ .htaccess ดังนี้ครับ
    AuthType Basic
    AuthName "Password Required"
    AuthUserFile /www/passwords/password.file
    AuthGroupFile /www/passwords/group.file
    Require Group admins

    โดยจะต้องมีการสร้างไฟล์ password ไว้ด้วยเพื่อเก็บรายชื่อของ user ครับ

  2. Server-side include เป็นการสั่งให้ Apache ทำการ parse ค่าเอกสารโดยใช้ Server-side include ครับ ทำได้โดย
    Options +Includes
    AddType text/html shtml
    AddHandler server-parsed shtml

    เป็นการสั่งให้ Apache รู้จักเอกสาร .shtml เมื่อมีการเรียกร้องขอไฟล์ .shtml จะเป็นการทำงานโดยใช้ Server-Side include

  3. CGI Handler เป็นการสั่งให้ Apache ทำการ execute ไฟล์ CGI สามารถทำได้โดย
    Options +ExecCGI
    AddHandler cgi-script cgi pl

    หรือในอีกแบบ เป็นการสั่งให้ทุกไฟล์ใน directory นั้นทำงานในลักษณะ CGI script
    Options +ExecCGI
    SetHandler cgi-script

  4. Error document เป็นการสั่งให้ Apache ใช้งาน error document ตามรูปแบบของเรา สามารถทำได้โดย
    ErrorDocument code /directory/filename.ext
    เช่น ถ้าต้องการทำการแสดง error ในแบบของเราสำหรับ error code 404 (Not found) ทำได้โดย
    ErrorDocument 404 /errors/notfound.html
    เมื่อมีการเรียกเอกสารที่ไม่มีใน directory นี้ Apache จะทำการแสดงเอกสาร notfound.html
    โดยรหัส error ของ HTTP Server หลักๆนั้น มีดังนี้
    • 400 Bad request
    • 401 Authorization required
    • 403 Forbidden
    • 404 Not found
    • 405 Method not allowed
    • 408 Requested timed out
    • 409 Conflicting request
    • 410 Gone
    • 500 Internal Server Error
    • 501 Not Implement
    • 502 Bad Gateway
    • 503 Service Unavailable

  5. Blocking by IP เป็นการสั่งให้ Apache ทำการ block ผู้ใช้งานจาก IP ที่ระบุ สามารถทำได้โดย
    order allow,deny
    deny from 123.45.6.7
    deny from 012.34.5.
    allow from all


    จากตัวอย่างจะเป็นการ block จาก IP 123.45.6.7 และ IP ที่ขึ้นต้นด้วย 012.34.5 ทั้งหมด
  6. Blocking user/site by referrer เป็นการสั่งให้ Apache ทำการ block ผู้ใช้งานที่มีการลิงค์มาจากเว็บที่ระบุ สามารถทำได้โดย
    RewriteEngine on
    # Options +FollowSymlinks
    RewriteCond %{HTTP_REFERER} badsite.com [NC]
    RewriteCond %{HTTP_REFERER} anotherbadsite.com
    RewriteRule .* - [F]
    จากตัวอย่างเป็นการ block ผู้ใช้ที่การ referrer จาก badsite.com และ anotherbadsite.com โดย [NC,OR] NC เป็นการบอกว่าให้เปรียบเทียบแบบ case insensitive และ OR หมายถึง referrer ที่มาจาก domain นั้นทั้งหมด โดย Apache จะใช้การเปรียบเทียบโดย Regular Expressions ซึ่ง "." ก็หมายถึง "." ตามมาตรฐานของ Regular Expressions เมื่อมีการร้องของจาก referrer ดังที่ระบุ Apache จะส่ง header 403 Forbidden ไปยัง Client
  7. Blocking bad bots เป็นการสั่ง Apache ให้ block bots หรือโปรแกรมดูดเว็บต่างๆ สามารถทำได้โดย

    RewriteEngine On
    RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Bot mailto:craftbot@yahoo.com [OR]
    RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
    RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Download Demon [OR]
    .......

    RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Xaldon WebSpider [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Zeus
    RewriteRule ^.* - [F,L]

    จากตัวอย่างเป็นแค่เพียงส่วนหนึ่งเท่านั้นครับ โดยการ block bots หรือโปรแกรมดูดเว็บนั้นจะช่วยลดแบนด์วดธ์ที่ไม่มีประโยชน์ลงได้เยอะเลยครับ

  8. Default page เป็นการสั่งให้ Apache ทำการ index default ไฟล์ตามที่ต้องการครับ โดยปกติแล้วจะเป็น index.html index.php เราอาจจะเปลี่ยนให้เป็น myfile.html ก็ได้ครับ สามารถทำได้โดย
    DirectoryIndex myfile.html

  9. Redirect เป็นการสั่งให้ redirect ไปยังหน้าเพจที่เราต้องการเมื่อมีการเรียกไฟล์หรือ directory ที่ระบุไว้ สามารถทำได้โดย
    Redirect /olddirectory http://modoeye.com/newdirectory/

  10. ป้องกันการเปิดไฟล์ ถ้าเราไช้ไฟล์ในการเก็บ password เราสามารถป้องกันการร้องขอเอกสารนั้นๆได้โดย


    order allow,deny
    deny from all


    เมื่อมีการร้องขอไฟล์ชื่อ password Apache จะมีการส่ง header 403 Forbidden ไปยัง client

  11. การเพิ่ม MIME types เป็นการสั่งให้ Apache รู้จักไฟล์ชนิดที่เราระบุเพื่อจะได้มีการส่ง header ที่ถูกต้องไปยัง client สามารถทำได้โดย
    AddType application/x-shockwave-flash swf

  12. ป้องกันการ Hot link เป็นการสั่งให้ Apache ทำการป้องกัน การเรียกใช้ไฟล์ที่ไม่ใช้ไฟล์ที่เราต้องการโดยตรง เช่น cascading style sheet, Javascript หรือไฟล์ที่เป็นความลับอื่นๆได้ โดย
    RewriteEngine on
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^http://(www.)?phpbbthailand.com.com/.*$ [NC]
    RewriteRule .(css|js|gif|jpg)$ http://www.phpbbthailand.com/hotlink.gif [R,L]
    จากตัวอย่าง เป็นการป้องกันการเรีกใช้ไฟล์ .css, .js, .gif, .jpg โดยตรงที่ไม่ได้มาจาก phpbbthailand.com และเมื่อมีการ hotlink จะมีการแสดง hotlink.gif แทน

  13. ป้องกัน Directory listing เป็นการสั่งให้ Apache ทำการป้องการ listing ไฟล์ที่อยู่ใน directory นั้น (ในกรณีที่ใน directory นั้นไม่มีไฟล์ index และ main configuration file ทำการเปิด directory listing ไว้) เมื่อมีการเรียกมายัง directory นั้นๆปกติ Apache จะทำการ list ไฟล์ทั้งหมดออกมาแสดงผล ซึ่งเป็นการไม่ดีแน่ถ้าข้อมูลนั้นเป็นรูปหรือไฟล์สำคัญๆ เราสามารถทำการป้องกันได้โดย
    IndexIgnore *
    หรือ
    Options -Indexes
    IndexIgnore *.gif *.jpg
    จากตัวอย่างที่ 1 และ 2 นั้นเป็นการสั่งให้ Apache ไม่ทำการ list ไฟล์ใดๆทั้งสิ้น ส่วนตัวอย่างล่างสุดนั้นเป็นการสั่งให้ Apache ไม่ทำการ list เฉพาะไฟล์ .gif และ .jpg เท่านั้น

ทั้งหมดนั้นเป็นการใช้งาน .htaccess สำหรับ Apache ซึ่งสามารถนำไปประยุกต์ใช้กับ เว็บของท่านได้ตามต้องการครับ



ที่มา บอร์ดไหนซักแห่งนะ จำไม่ได้ต้องขออภัย



กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
google photos เพิ่มฟีเจอร์ Memories นำภาพถ่ายหรือวิดีโอเก่า ๆ ของเรามาแสดง
โดย jamepiyawat ศ 13 ก.ย. 2019 6:08 pm บอร์ด Share Knowledge
1
97
จ 16 ก.ย. 2019 12:05 pm โดย markjohn
Microsoft เปลี่ยนชื่อ Microsoft To-Do เป็น To Do หวังให้ใช้งานแทน Wunderlis
โดย chatee supasand ศ 13 ก.ย. 2019 6:05 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
65
ศ 13 ก.ย. 2019 6:05 pm โดย chatee supasand
วิธีการ Export ข้อมูลมาเป็นไฟล์ Excel โดย phpbb
โดย Ittichai_chupol ศ 13 ก.ย. 2019 4:24 pm บอร์ด PHP Knowledge
1
96
จ 30 ก.ย. 2019 1:16 pm โดย thatsawan
อยากทราบวิธีการแก้ไข Undefined index ใน phpbb
โดย Ittichai_chupol ศ 13 ก.ย. 2019 3:26 pm บอร์ด Programming - PHP
1
113
ศ 13 ก.ย. 2019 3:36 pm โดย บุคคลทั่วไป
อยากทราบวิธีทำให้ path way มีลูกศรชี ครับ
โดย jamepiyawat ศ 13 ก.ย. 2019 2:53 pm บอร์ด Joomla Development
1
81
ศ 13 ก.ย. 2019 2:55 pm โดย tsukasaz
สอบถามครับ RML สร้างเส้นตาราง แบบนี้ยังไงอะครับ
โดย chatee supasand ศ 13 ก.ย. 2019 10:28 am บอร์ด Programming - C/C++ & java & Python
2
113
ศ 13 ก.ย. 2019 11:03 am โดย chatee supasand
Google Assistant สามารถอ่านข้อความและตอบกลับได้บนแอพTelegram, Slack และ WhatsApp
โดย jamepiyawat พฤ 12 ก.ย. 2019 6:42 pm บอร์ด Share Knowledge
0
82
พฤ 12 ก.ย. 2019 6:42 pm โดย jamepiyawat
แสดงสินค้าโดยที่ให้ สินค้าแสดงแบบสุ่ม และแสดงแค่ 3 อย่าง ทำอย่างไรครับ
โดย Patipat พฤ 12 ก.ย. 2019 6:13 pm บอร์ด Joomla Development
1
89
พฤ 12 ก.ย. 2019 6:28 pm โดย tsukasaz
Windows 10 สามารถใช้โปรแกรม PowerToys ได้แล้ว
โดย chatee supasand พฤ 12 ก.ย. 2019 6:12 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
67
พฤ 12 ก.ย. 2019 6:12 pm โดย chatee supasand
ดึงชื่อรูปภาพ และนำชื่อมาแสดงเป็นภาพอย่างไรครับ
โดย Patipat พฤ 12 ก.ย. 2019 5:13 pm บอร์ด Joomla Development
2
89
พฤ 12 ก.ย. 2019 5:20 pm โดย Patipat
ปุ่ม Remove กดแล้วไม่ยอมลบสินค้าให้ครับ
โดย jamepiyawat พฤ 12 ก.ย. 2019 4:20 pm บอร์ด Programming - PHP
4
111
พฤ 12 ก.ย. 2019 5:57 pm โดย jamepiyawat
ทำยังไงให้ hover ใน แท็ก div แล้วตัวอักษรใน แท็ก div มันเปลี่ยนสีครับ
โดย jamepiyawat พฤ 12 ก.ย. 2019 3:49 pm บอร์ด HTML CSS
4
100
พฤ 12 ก.ย. 2019 4:13 pm โดย jamepiyawat
การบันทึกบัญชีค่าเบี้ยประกันภัยกลุ่ม
โดย EyePornnipa พฤ 12 ก.ย. 2019 2:39 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
1
102
ส 14 ก.ย. 2019 10:25 am โดย Amp_Audit
ใช้งานฟังก์ชันแล้วขึ้นเออเร่อครับ
โดย Patipat พฤ 12 ก.ย. 2019 2:19 pm บอร์ด Joomla Development
6
126
พฤ 12 ก.ย. 2019 3:27 pm โดย Patipat
5 เหตุผล รับเขียนเนื้อหาของบทความ เพราะเหตุใดจะต้องว่าจ้างคนเขียนบทความ
โดย articleheros พฤ 12 ก.ย. 2019 11:26 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
77
พ 09 ต.ค. 2019 4:27 pm โดย LEG
ใครติดตั้ง mjupgrade ไม่ได้ เจอ Error ตอนติดตั้ง Extension com_mjupgrade
โดย mindphp พฤ 12 ก.ย. 2019 11:24 am บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
1
81
พฤ 12 ก.ย. 2019 11:32 am โดย mindphp
สอบถามเกี่ยวกับการทำ log เก็บการเข้าใช้งานของโปรแกรม wed serviec
โดย jirawoot พฤ 12 ก.ย. 2019 11:19 am บอร์ด Programming - C/C++ & java & Python
1
80
พฤ 12 ก.ย. 2019 11:58 am โดย tatiya
อยากทราบวิธีการใช้งาน unserialize() กับ serialize() ใน phpbb
โดย Ittichai_chupol พฤ 12 ก.ย. 2019 11:04 am บอร์ด Programming - PHP
0
69
พฤ 12 ก.ย. 2019 11:04 am โดย Ittichai_chupol
อยากทราบวิธ๊การแก้ไขการ Export ไฟล์ Excel แล้วเป็นภาษาต่างดาว phpbb
โดย Ittichai_chupol พฤ 12 ก.ย. 2019 10:59 am บอร์ด Programming - PHP
0
81
พฤ 12 ก.ย. 2019 10:59 am โดย Ittichai_chupol
md gallery สามารถ สร้าง ลบ ในหน้าเว็บได้ไหมครับ
โดย Jahari Aum พ 11 ก.ย. 2019 11:47 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
1
119
พฤ 12 ก.ย. 2019 12:28 am โดย mindphp