โดยค่าเริ่มต้น Apache ห้ามใช้ไฟล์. htaccess เพื่อใช้กฎการเขียนซ้ำดังนั้น
ขั้นตอนที่ 1 - การเปิดใช้งาน mod_rewrite (ถ้าไม่เปิดใช้งาน)
อันดับแรกเราต้องเปิดใช้งาน mod_rewrite พร้อมใช้งาน แต่ไม่เปิดใช้งานด้วยการติดตั้ง Apache 2 แบบใหม่ทั้งหมด
$ sudo a2enmod rewrite
สิ่งนี้จะเปิดใช้งานโมดูลหรือแจ้งเตือนคุณว่าโมดูลนั้นเปิดใช้งานแล้ว หากต้องการให้การเปลี่ยนแปลงเหล่านี้มีผลบังคับใช้ให้รีสตาร์ท Apache
$ sudo systemctl restart apache2
mod_rewrite เปิดใช้งานอย่างสมบูรณ์แล้ว ในขั้นตอนถัดไปเราจะตั้งค่าไฟล์. htaccess ที่เราจะใช้เพื่อกำหนดกฎการเขียนซ้ำสำหรับการเปลี่ยนเส้นทาง
ขั้นตอนที่ 2 - การตั้งค่า. htaccess
เปิดไฟล์การกำหนดค่า Apache เริ่มต้นโดยใช้นาโนหรือโปรแกรมแก้ไขข้อความที่คุณชื่นชอบ
$ sudo nano /etc/apache2/sites-available/000-default.conf
ในไฟล์นั้นคุณจะพบบล็อกเริ่มต้นที่บรรทัดแรก ภายในบล็อกนั้นให้เพิ่มบล็อกใหม่ต่อไปนี้เพื่อให้ไฟล์การกำหนดค่าของคุณมีลักษณะดังต่อไปนี้ ตรวจสอบให้แน่ใจว่าบล็อกทั้งหมดมีการเยื้องอย่างเหมาะสม
/etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
. . .
</VirtualHost>
บันทึกและปิดไฟล์ หากต้องการให้การเปลี่ยนแปลงเหล่านี้มีผลบังคับใช้ให้รีสตาร์ท Apache
$ sudo systemctl restart apache2
เสร็จสิ้น . htacess ของคุณควรใช้งานได้
ลิงค์นี้อาจช่วยใครซักคนได้ https://www.digitalocean.com/community/tutorials/how-to-rewrite-urls-with-mod_rewrite-for-apache-on-ubuntu-16-04
400 Bad Request
ข้อผิดพลาด/var/www/html/404.php
?