- เค้ามีมาตั้งนานมากแล้วพึ่งหัดทำ RESTful service จริงๆ จังๆ ก็วันนี้
- server เป็น ubuntu 18.04 จะทำด้วย php
- แต่ติดปัญหาเรื่อง URL มันไม่สวยตามรูปแบบ RESTful
- ดูตามอ้างอิงแล้วลองมั่วๆ เอานิดหน่อยก็ได้แล้ว url rewrite
- ในที่นี้เรามี LAMP เรียบร้อยร้อยแล้ว
Step
- เปิดใช้งาน mod_rewrite
$ sudo a2enmod rewrite
$ /etc/init.d/apache2 restart
- ต่อมาถ้าเราใช้ config เริ่มต้นจะอยู่ที่
$ sudo nano /etc/apache2/sites-available/000-default.conf
- เพิ่ม AllowOverride All และ Require all granted ไปไว้ใน tag ดังตัวอย่าง
- ตัวอย่างนี้ใช้ https ของ vhost
- หรือถ้าเราจะใช้ใน alias เราก็เอาแค่
- เราตั้งค่าด้านบนไปที่พาธใหนก็ไปเพิ่ม .htaccess ตามพาธนั้นๆ
- เช่นเราต้องการเปลี่ยน https://myhost.com/it/jui.html (เราต้องสร้าง jui.html ไว้ตามพาธ /var/xxx/it/jui.html)
- เราจะเปลี่ยนให้เข้าเป็น https://myhost.com/it/jui
- ให้เราสร้าง /var/xxx/it/.htaccess แล้วเพิ่ม
RewriteEngine on
RewriteRule ^jui$ jui.html [NC]
- เปลี่ยนสิทธิ์ให้อย่างน้อย read ได้
$ sudo chmod 444 /var/xxx/it/.htaccess
- อีกตัวอย่างของ .htaccess เราจะแสดงค่า จาก query string เช่น https://myhost.com/it/jui.php?id=2
- เปลี่ยนให้เป็น https://myhost.com/it/jui/2
- ตัว .htaccess ภายใต้พาธนี้จะเป็นประมาณนี้
RewriteEngine on
RewriteRule ^jui$ juuier.php [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?jui/(.*?)/?$ /jui.php?id=$1 [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /jui\.php\?id=([^\&\ ]+)
RewriteRule ^/?jui\.php$ /jui/%1? [L,R=301]
Note
- ดูจากอ้างอิงแล้วใส่แค่ AllowOverride All โดยไม่ต้องใส่ Require all granted
- ไว้ภายใต้ root tag หรือ alias tag ก็น่าจะเพียงพอสำหรับเปิดใช้งาน mod_rewrite แล้วคับ
Ref
- https://www.tutsmake.com/how-to-mod_rewrite-enable-in-apache-ubuntu-18-04/
- https://www.digitalocean.com/community/tutorials/how-to-rewrite-urls-with-mod_rewrite-for-apache-on-ubuntu-18-04
- https://hostadvice.com/how-to/how-to-enable-apache-mod_rewrite-on-an-ubuntu-18-04-vps-or-dedicated-server/
- https://begamatan.site/2/how-to-enable-mod-rewrite-on-ubuntu-1804-lts
- https://tecadmin.net/enable-apache-mod-rewrite-module-in-ubuntu-linuxmint/
- https://www.taniarascia.com/rewrite-query-string-to-path-with-htaccess/
No comments:
Post a Comment