Pertanyaan Bagaimana cara mengaktifkan mod_rewrite di Apache?


Saya baru saja menginstal LAMP stack pada sistem Ubuntu saya.

Pengalihan tidak berfungsi untuk saya. Saya tidak tahu cara memperbaikinya. Ada yang bisa bantu saya?


158
2018-06-12 13:45


asal


IMHO pertanyaan ini tidak spesifik Ubuntu dan harus bermigrasi ke Kesalahan Server. - Paolo
Lampu OP yang terpasang pada UBUNTU. Berapa banyak lagi spesifik Ubuntu yang Anda inginkan? - wojox
@wojov: Saya tidak tahu tentang kasus ini, tetapi argumen itu tidak berhasil. "Bagaimana saya bisa menggunakan aplikasi ini (di Ubuntu)?" sebagian besar di luar topik.
Ini bukan "Bagaimana saya bisa menggunakan aplikasi", tetapi "cara mengaktifkan fitur tertentu di Ubuntu". Apache di bawah Ubuntu menggunakan tata letak konfigurasi yang berbeda di mana setiap modul dan host virtual adalah file di dalamnya /etc/apache2 dan yang dapat diaktifkan menggunakan a2* program. - Lekensteyn
Anda harus menjelaskan apa yang telah Anda lakukan untuk mempersempit masalah, itu - ericn


Jawaban:


Untuk mengaktifkannya modul penulisan ulang, jalankan "apache2 enable module rewrite":

sudo a2enmod rewrite

Anda perlu me-restart server web untuk menerapkan perubahan:

sudo service apache2 restart

Jika Anda berencana menggunakan mod_rewrite di .htaccess file, Anda juga perlu mengaktifkan penggunaan .htaccess file dengan mengubah AllowOverride None untuk AllowOverride FileInfo. Untuk situs web default, edit /etc/apache2/sites-available/default:

    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            # changed from None to FileInfo
            AllowOverride FileInfo
            Order allow,deny
            allow from all
    </Directory>

Setelah perubahan seperti itu, Anda perlu me-restart Apache lagi.


231
2018-06-12 13:49



Saya lebih sukses dengan AllowOverride All - Valentin Despa
Terima kasih! sudo a2enmod rewrite dan FileInfo memperbaikinya untuk saya! - d-_-b
Bagi saya file itu adalah /etc/apache2/apache2.conf di mana saya menemukan entri konfigurasi itu - rahmanisback
Ya, buat dua perubahan memperbaiki masalah. - Adelin
Itu tidak berhasil untukku. Saya mengirim pertanyaan di sini askubuntu.com/questions/809619/failing-to-rewrite-url - Suhail Gupta


Saya berani menambahkan jawaban khusus (sebagai tindak lanjut atas jawaban yang bagus di atas) mengenai ubuntu 14.04 dan .htaccess :

Pada 14.04, nama file konfigurasi default diubah menjadi 000-default.conf :

sudo gedit /etc/apache2/sites-available/000-default.conf

tambahkan yang berikut ini ke bagian akhir file:

<Directory "/var/www/html">
    AllowOverride All
</Directory>

Untuk beberapa alasan, di Ubuntu 14.04 dan apache2 root diatur ke /www/html. Jika Anda ingin mengubah root webserver kembali ke yang lama /www, open 000-default.conf dan berubah

DocumentRoot /var/www/html/

untuk

DocumentRoot /var/www/

dan kemudian tentu saja itu harus

<Directory "/var/www">
    AllowOverride All
</Directory>

49
2017-10-17 13:00



Itu adalah detail penting +1 - Koba
Thanx untuk info! Ini / cara baru kita dapat menggunakan www sebagai folder di mana kita meletakkan semua situs web, dan html adalah "situs web" default untuk localhost. Mungkin penting jika Anda bermain dengan membuka port ke dunia - bahwa dengan cara ini localhost Anda tidak dapat melihat folder proyek lain. - Vladimir Vukanac
Itu tidak berhasil untukku. saya menggunakan Ubuntu 14.04.4 LTS - Suhail Gupta