Cara mengaktifkan mod_rewrite untuk virtual host

8

Aturan mod_rewrite tidak berfungsi pada host virtual. Saya menginginkan ini untuk cakephp.

Apakah ada pengaturan untuk ditambahkan dalam file host virtual?

user12gk21hkj
sumber

Jawaban:

21

Jika Anda menggunakan versi apache terbaru 2.4+ maka di sini adalah proses bagaimana mengaktifkan mod_rewrite.

Pergi ke etc/apache2/
Buka apache2.confmenggunakan editor teks favorit Anda.
Perubahan

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

untuk

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Lalu simpan itu. Ingat Anda harus memiliki izin root untuk mengedit dan menyimpan file ini.
Sekarang restart apache.

service apache2 reload

Proses ini akan mengaktifkan mod_rewrite untuk server apache termasuk virtual host.

Anda juga dapat memeriksa apakah itu diaktifkan atau tidak. Buat skrip php

<?php    
phpinfo();    
?>

Muat dari server. Di bawah Loaded Modulesbagian periksa apakah mod_rewriteada atau tidak. Jika ada di sana maka itu diaktifkan.

Nabil
sumber
Sebelum saya menggunakan opsi ini semua penulisan ulang saya berakhir di 404, namun setelah memperbarui apache2.confdan memulai kembali apache404 menghilang tetapi semua halaman mendarat kembali di beranda! phpinfo()tidak memiliki mod_rewritemodul diaktifkan baik. Kemudian jalankan perintah CLI (seperti yang disarankan oleh Lonston di bawah) semuanya menjadi emas! Mengapa solusi ini tidak mengaktifkan mod-rewritemodul untuk saya tetapi persetujuan CLI? Apakah ini kombinasi memodifikasi .confdan menjalankan perintah CLI satu demi satu untuk mengaktifkan modul atau salah satu dari ini sebenarnya sudah cukup?
Niladri Sarkar
6

Aktifkan Penulisan Ulang menggunakan

# sudo a2enmod rewrite

Kemudian restart apcahe2 menggunakan

# service apache2 restart

Aktifkan di Virtualhost dengan menambahkan

AllowOverride FileInfo

Kemudian restart apcahe2 menggunakan

# service apache2 restart

contoh :

<Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            # I Have below line from none to FileInfo
            AllowOverride FileInfo
            Order allow,deny
            allow from all
    </Directory>
Babin Lonston
sumber
Ini juga bekerja untuk saya!
Niladri Sarkar