Golfreeze.packetlove.com: Life style of Golfreeze Canon400D Family kammtan.com Jazz Freebsd Unix Linux System Admin guitar Music

All about unix linux freebsd and FAQ for Packetlove.com Web hosting , Mail hosting , VoIP + IP PBX server => all application on unix knowledges by golfreeze => Topic started by: golfreeze on มกราคม 23, 2011, 12:17:25 AM

Title: set mod rewrite ใน file .htaccess
Post by: golfreeze on มกราคม 23, 2011, 12:17:25 AM
ก่อนอื่น ต้องทำความเข้าใจเกี่ยวกับ mod rewrite ก่อน

แต่เด๋วผมมาอัฟเดท อีกที วันนี้ ง่วงๆ เพลียๆ เขียนตัวแปรผิด ตลอด

เอาเป้นว่า config ดังนี้

เปิดไฟล์ httpd.conf ของ apache มาครับ
ถ้าจะใช้ .htaccess ใน dir ก็ config ใน dir นั้นอย่างเดียวน่ะครับ
เช่นจะใช้ ใน document root ที่เป็น /usr/local/www/apache22/data/xxx

ก็ set แบบนี้
<Directory \"/usr/local/www/apache22/data/xxx\">
Options FollowSymLinks
#AllowOverride None จะเลี้ยงใช้ htaccess ไม่ได้ เปลี่ยนเป็น All ครับ
#AllowOveride None
AllowOverride All
Order allow,deny
Allow from all
</Directory>

แล้วไปเขียนไฟล์ test ดังนี้
#vi /usr/local/www/apache22/data/xxx/.htaccess

RewriteEngine on
RewriteBase /
RewriteRules ^(.*)$ index.php?id=$1

-----------------------------------------------------------
#vi index.php
<?php
session_start();
$id = $_GET=[\"id\"];

echo \"$id\";

if (empty($id)) {
echo \"can not use\"; }
else {
echo \"can use\";
}
echo php_uname(\"n\");

?>

แล้วลองเรียกไฟล์ index.php ดูน่ะครับ ถ้าใช้ได้ จะขึ้นเป็น ชื่อ node + can use


golfreeze[at]packetlove.com
Title: Re: set mod rewrite ใน file .htaccess
Post by: golfreeze on มกราคม 23, 2011, 12:19:18 AM
ต้องการจำกัด user ที่จะเข้าถึงไดเรกทอรี conf



สำหรับ apache ที่ใช้ทดสอบนั้น สามารถสร้างแฟ้มคอนฟิกแยกจาก httpd.conf ได้โดยใส่ในไดเรกทอรี conf.d

ให้สร้างแฟ้ม /etc/httpd/conf.d/my.conf โดยเพิ่มบรรทัดเหล่านี้

<Directory "/var/www/cgi-bin/conf">
Options ExecCGI FollowSymLinks
AllowOverride None
Options None
AuthType Basic
AuthName "Please enter our server's User Account"
AuthUserFile /var/www/users/local_users
Require user user1 user2
Order Allow,Deny
Allow from all
Satisfy all
</Directory>



สร้าง user ดังนี้

ครั้งแรก ใส่ -c เพื่อสร้างไฟล์ ด้วย

htpasswd -c /var/www/users/local_users user1
รอให้ใส่ password ของ user1 ดังนี้

New password:
Re-type new password:
Adding password for user user1
ครั้งต่อไปไม่ต้องใส่ -c

htpasswd /var/www/users/local_users user2



เสร็จแล้วให้ restart httpd ดังนี้

service httpd restart