กฎ mod_rewrite ไม่ทำงานบนโฮสต์เสมือน ฉันต้องการสิ่งนี้สำหรับ CakePHP
มีการตั้งค่าให้เพิ่มในไฟล์โฮสต์เสมือนหรือไม่?
กฎ mod_rewrite ไม่ทำงานบนโฮสต์เสมือน ฉันต้องการสิ่งนี้สำหรับ CakePHP
มีการตั้งค่าให้เพิ่มในไฟล์โฮสต์เสมือนหรือไม่?
คำตอบ:
หากคุณใช้ apache เวอร์ชันล่าสุด 2.4 ขึ้นไปนี่เป็นขั้นตอนวิธีเปิดใช้งาน mod_rewrite
ไปที่etc/apache2/
เปิดapache2.conf
โดยใช้โปรแกรมแก้ไขข้อความที่คุณชื่นชอบ
เปลี่ยนแปลง
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
ถึง
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
จากนั้นบันทึก จำไว้ว่าคุณควรได้รับอนุญาตให้รูทเพื่อแก้ไขและบันทึกไฟล์นี้
ตอนนี้รีสตาร์ท apache
service apache2 reload
กระบวนการนี้จะเปิดใช้งาน mod_rewrite สำหรับเซิร์ฟเวอร์ apache รวมถึงโฮสต์เสมือน
คุณสามารถตรวจสอบว่ามันเปิดใช้งานหรือไม่ สร้างสคริปต์ PHP
<?php
phpinfo();
?>
โหลดจากเซิร์ฟเวอร์ ภายใต้การLoaded Modules
ตรวจสอบส่วนถ้าmod_rewrite
มีหรือไม่ หากมีอยู่ก็มีการเปิดใช้งาน
เปิดใช้งานการเขียนซ้ำโดยใช้
# sudo a2enmod rewrite
จากนั้นรีสตาร์ท apcahe2 โดยใช้
# service apache2 restart
เปิดใช้งานใน Virtualhost โดยการเพิ่ม
AllowOverride FileInfo
จากนั้นรีสตาร์ท apcahe2 โดยใช้
# service apache2 restart
ตัวอย่าง :
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
# I Have below line from none to FileInfo
AllowOverride FileInfo
Order allow,deny
allow from all
</Directory>
apache2.conf
และรีสตาร์ทapache
404 หายไป แต่หน้าทั้งหมดกลับมาที่หน้าแรก!phpinfo()
ไม่ได้mod_rewrite
เปิดใช้งานโมดูลอย่างใดอย่างหนึ่ง จากนั้นเรียกใช้ CLI commnd (ตามที่แนะนำโดย Lonston ด้านล่าง) ทุกอย่างเป็นไปด้วยดี! เหตุใดโซลูชันนี้จึงไม่เปิดใช้งานmod-rewrite
โมดูลสำหรับฉัน แต่เป็น CLI ที่ได้รับการอนุมัติ นี่เป็นการรวมกันของการแก้ไข.conf
และการเรียกใช้คำสั่ง CLI ทีละรายการเพื่อเปิดใช้งานโมดูลหรืออย่างใดอย่างหนึ่งเหล่านี้จริง ๆ แล้วเพียงพอหรือไม่