หน้าเว็บเพจที่ไม่มีหน้า Log In เราก็ป้องกันไม่ให้คนอื่นที่เราไม่ต้องการให้เห็นได้ด้วยนะครับ โดยใช้ฟีเจอร์ Apache Auth ครับ เมื่อมีคนพยายามเปิดหน้าที่เราป้องกันไว้ Apache ก็จะป๊อปอัพให้ใส่ Username และ Password แบบในรูปนี้
มาลองทำกันดีกว่าครับ
1. สร้างไฟล์ที่จะเก็บ Username/Password
ผมจะเก็บ Username/Password ไว้ในไฟล์ users นะครับ ให้อยู่ในไดเร็คตอรี่ /etc/httpd/conf
- โค้ด: เลือกทั้งหมด
htpasswd -c /etc/httpd/conf/users user1
จะมีพร้อมท์ให้ใส่ Password ก็พิมพ์ Password สองครั้งให้เหมือนกัน
New password:
Re-type new password:
Adding password for user user1
2. เพิ่ม User คนต่อไป
สำหรับการเพิ่ม User ตั้งแต่คนที่ 2 เป็นต้นไป ให้พิมพ์เหมือนเดิมครับ แต่ห้ามมี -c เด็ดขาด ถ้ามี -c อีก (ซึ่งหมายถึง create) ไฟล์เก่าก็จะโดนลบข้อมูลไปเลยนะครับ
- โค้ด: เลือกทั้งหมด
htpasswd /etc/httpd/conf/users user2
ข้อมูลในไฟล์ users ก็จะประมาณนี้ครับ พาสเวอร์ดเข้ารหัสไว้
user1:8OKIKAdkc.EE7
user2:a432eyJHR784X
3. แก้ไขไฟล์คอนฟิกของ Apache
สมมติว่าผมจะป้องกันหน้าเว็บซึ่งผมแยกออกมาเป็น Sub Directory ต่างหาก ชื่อว่า secret เวลาเรียกก็เรียกแบบนี้ http://192.168.5.44/secret แล้วให้มันเด้งหน้าจอล๊อกอินขึ้นมา
3.1 ผมสร้างไฟล์ชื่อ alias.conf แยกออกมาจากไฟล์ httpd.conf
- โค้ด: เลือกทั้งหมด
vi /etc/httpd/conf.d/alias.conf
- โค้ด: เลือกทั้งหมด
Alias /monitor /opt/monast-1.4
<Directory "/opt/monast-1.4">
Options FollowSymLinks
AllowOverride AuthConfig
Order allow,deny
Allow from all
AuthType Basic
AuthName "Restricted Zone"
AuthUserFile /etc/httpd/conf/users
Require valid-user
</Directory>
3.2 เซฟไฟล์แล้วรีสตาร์ท Apache
- โค้ด: เลือกทั้งหมด
service httpd restart
4. ลองเรียก http://192.168.5.44/secret
ก็จะมีให้ใส่ Username/Password แล้วครับ