Di hampir setiap solusi "Cara mengaktifkan htaccess", mereka mengatakan bahwa file / etc / apache2 / sites-available / default perlu diedit. Tetapi tidak ada file seperti itu di Apache 2.4.7
Saya membaca di suatu tempat bahwa file default baru adalah 000-default.conf. Jadi saya mengedit yang itu dan mencoba menambahkan baris:
AllowOverride All
Tetapi Apache2 tidak restart dengan benar dan memberikan kesalahan. Dari dokumentasi apache2, saya menemukan bahwa AllowOverride hanya diperbolehkan di bawah <Directory>
bagian ini. Lalu saya mencoba menambahkan ini:
<Directory "/var/www">
AllowOverride All
</Directory>
Dan ini sepertinya berhasil. Tapi saya tidak yakin apakah saya harus meletakkan / var / www di sana. Apakah ini cara yang benar atau apakah komputer saya akan meledak?
apache2
configuration
.htaccess
CluelessNoob
sumber
sumber
Jawaban:
tl; dr
Ya itu cara yang benar.
Tetapi untuk menjadi lebih semantik : Ya, ini adalah cara yang benar untuk memungkinkan
.htaccess
untuk mengesampingkan semua arahan dalam/var/www
direktori.Seperti yang Anda ketahui,
AllowOverride
hanya diperbolehkan di bawahDirectory
bagian ini.Menggunakan contoh Anda:
Ini memberi tahu apache, bahwa semua konfigurasi dapat ditimpa dalam
/var/www
dan semua sub-direktori (secara rekursif).Untuk contoh yang lebih baik, pertimbangkan Anda memiliki konfigurasi berikut di host virtual Anda:
Dan struktur direktori berikut:
Apa yang saya lakukan di sini, adalah membuat
.htaccess
di setiap sub-direktori/var/www
direktori.Seharusnya tidak seperti itu, tetapi ini hanya untuk contoh saja
Membandingkan struktur direktori dengan konfigurasi, itu berarti bahwa semua
.htaccess
file di dalam/var/www
folder dan sub-direktori, tidak termasuk/var/www/uploads
direktori dan sub-direktori, dapat menimpa semua jenis arahan.Tetapi
/var/www/uploads
dan sub-direktori hanya dapat menggunakan.htaccess
file untuk menimpaAllow
,Deny
danOrder
arahan.Catatan: Pada apache 2.4 (Yang tersedia secara default di 13.10+)
Allow
,Deny
danOrder
arahan digantikan oleh arahan tunggal bernamaRequire
.sumber
Pertama, aktifkan penulisan ulang menggunakan perintah ini:
Kemudian restart apache2:
Lalu masuk ke
sites-available
folder:Edit file bernama
default
dan ubahAllowOverride none
keAllowOverride All
. Ada dua baris di mana perubahan ini harus dilakukan.Ini akan
.htaccess
berfungsi di VPS server Anda.Ini bekerja pada VPS Ubuntu 12.04.5.
sumber
default
file dipanggil000-default.conf
, dan tidak mengandungAllowOverride None
baris.000-default.conf
dan tidak mungkin untuk menambahkan diAllowOverride None
sini, jika Anda memuat ulang apache memberikan kesalahan.htaccess
, lebih baik digunakanAllowOverride FileInfo
. Meskipun FileInfo sudah menyertakan sejumlah besar arahan, Anda masih akan membatasi banyak arahan agar tidak ditimpa.Dalam kasus saya, ini berfungsi seperti ini:
Saya harus menambahkan baris berikut:
Jadi sepertinya ini:
sumber
Di sini cuplikan cara mengaktifkan htaccess di Apache 2.4 tanpa mengubah konfigurasi default:
sumber