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.

Freddy Heppell
sumber

Jawaban:

33

Anda harus mengizinkan penulisan ulang.

<Directory "/path/to/document/root/">
  AllowOverride All
  Allow from All
</Directory>
rechengehirn
sumber
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.

metamorf
sumber
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
Damjan Pavlica
sumber