mod_rewrite diaktifkan, tetapi tidak berfungsi


17

Saya sedang mencoba untuk mengatur perpustakaan routing PHP. Mereka memberikan contoh ini untuk file .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]

Saya tidak bisa menjalankan ini, jadi saya mencoba mengaktifkan mod_rewrite, tetapi dikatakan "Module rewrite sudah diaktifkan".

Mengapa itu tidak berfungsi dengan baik? Terima kasih! Saya menjalankan Ubuntu Precise 12.04, dan apache2.2.22. (Diperiksa untuk setiap pembaruan)

Sunting: Beberapa detail lebih lanjut, ini adalah bangunan gelandangan PuPHPet, menulis ulang harus diaktifkan.

Jawaban:


33

Anda harus mengizinkan penulisan ulang.

<Directory "/path/to/document/root/">
  AllowOverride All
  Allow from All
</Directory>

5
Ini tidak perlu permisif. Hanya AllowOverridediperlukan untuk konfigurasi yang dimaksud. Allow from Alltidak ada hubungannya dengan pertanyaan dan mungkin tidak sesuai untuk lingkungan @ randomdev.
Mark

1
<Directory "/path/to/document/root/">Saya lupa untuk mengubah /path/to/document/root/ke root proyek saya. Terima kasih!
Abhishek

16

Pertama-tama, atur konfigurasi httpd Anda untuk ini (path mungkin berbeda satu sama lain. Di ubuntu saya ditempatkan di / etc / apache2 / sites-available / default):

DocumentRoot /var/www

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Order allow,deny
    allow from all
</Directory>

Setelah itu, Anda harus mengaktifkan mod_rewrite dengan perintah ini:

sudo a2enmod rewrite

Yang terakhir, restart layanan apache Anda :

sudo service apache2 restart

Untuk memastikannya, Anda dapat memeriksanya kembali dari phpinfo di Konfigurasi> apache2handler> Modul yang Dimuat di sana harus ditulis mod_rewritedan itu berarti mod_rewrite diaktifkan.


Haruskah ini dalam elemen host virtual?
jjxtra

Anda dapat melihat beberapa contoh di Contoh Apache Virtual Host
metamorph

1

Saya memiliki masalah yang sama, tetapi jawaban lainnya tidak membantu saya. Baris ini pada awal .htaccessmenyelesaikan masalah saya:

Options +FollowSymLinks -MultiViews
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.