Apache .htaccess <ifModule tidak diizinkan di sini


13

Menjalankan Apache di Ubuntu Precise, dengan PHP 5.5

Mencoba mengakses saya var/www/memberi saya 500.

/var/log/apache2/error.log

menunjukkan:

/var/www/web/.htaccess: <IfModule not allowed here

.htacess saya adalah:

DirectoryIndex app.php


<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
    RewriteRule ^(.*) - [E=BASE:%1]

    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]

    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule .? - [L]

    RewriteRule .? %{ENV:BASE}/app.php [L]
</IfModule>

<IfModule !mod_rewrite.c>
    <IfModule mod_alias.c>       
        RedirectMatch 302 ^/$ /app.php/       
    </IfModule>
</IfModule>

Ke dalam apache.conf saya menambahkan:

<Directory />
AllowOverride ALL
</Directory>

Dan itu berhasil setelah saya me-restart apache.

Jawaban:


25

Anda perlu mengonfigurasi apache Anda untuk mengaktifkan konfigurasi dari file .htaccess. Jadi di bagian direktori pastikan Anda memiliki opsi

Allowoverride ALL 

untuk informasi lebih lanjut informasi lebih lanjut tentang allowoverride .

Dalam pengaturan Anda jika Anda hanya menggunakan mod_rewrite mungkin Anda hanya dapat mengatur FileInfo, saya selalu mengatur parameter Opsi ke SymLinksIfOwnerMatch untuk dapat melakukan pengalihan ke situs lain.

Allowoverride FileInfo 
Options SymLinksIfOwnerMatch

Saya harap ini akan membantu, jika Anda sudah mengatur konfigurasi ini, silakan tambahkan informasi dengan konfigurasi virtualhost Anda.


Ini adalah instalasi baru dari Apache. Saya tidak memiliki bagian <Direktori /> di apache2.conf. Saya telah menambahkan pembaruan saya di atas. Terima kasih
Kiksy

Saya lupa me-restart Apache. Itu bekerja sekarang.
Kiksy

1
Pada akhirnya saya memiliki Directoryarahan yang hilang . Setelah ditambahkan, itu berfungsi dengan baik. Saya kira ini baru dalam versi 2.4 dari Apache karena dulu bekerja dengan 2.2 ...
Alexis Wilke

1
Ya, nilai default untuk Allowoverride berubah di Apache 2.3.9.
mlissner
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.