วิธีเปิดใช้งาน mod_rewrite สำหรับโฮสต์เสมือน


8

กฎ mod_rewrite ไม่ทำงานบนโฮสต์เสมือน ฉันต้องการสิ่งนี้สำหรับ CakePHP

มีการตั้งค่าให้เพิ่มในไฟล์โฮสต์เสมือนหรือไม่?

คำตอบ:


21

หากคุณใช้ 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มีหรือไม่ หากมีอยู่ก็มีการเปิดใช้งาน


ก่อนที่ฉันจะใช้ตัวเลือกนี้การเขียนทั้งหมดของฉันสิ้นสุดที่ 404 อย่างไรก็ตามหลังจากการอัปเดตapache2.confและรีสตาร์ทapache404 หายไป แต่หน้าทั้งหมดกลับมาที่หน้าแรก! phpinfo()ไม่ได้ mod_rewriteเปิดใช้งานโมดูลอย่างใดอย่างหนึ่ง จากนั้นเรียกใช้ CLI commnd (ตามที่แนะนำโดย Lonston ด้านล่าง) ทุกอย่างเป็นไปด้วยดี! เหตุใดโซลูชันนี้จึงไม่เปิดใช้งานmod-rewriteโมดูลสำหรับฉัน แต่เป็น CLI ที่ได้รับการอนุมัติ นี่เป็นการรวมกันของการแก้ไข.confและการเรียกใช้คำสั่ง CLI ทีละรายการเพื่อเปิดใช้งานโมดูลหรืออย่างใดอย่างหนึ่งเหล่านี้จริง ๆ แล้วเพียงพอหรือไม่
Niladri Sarkar

6

เปิดใช้งานการเขียนซ้ำโดยใช้

# 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>

มันก็ใช้ได้กับฉันเช่นกัน!
Niladri Sarkar
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.