Bagaimana cara mengaktifkan penggunaan .htaccess di Apache di Ubuntu?


15

Saya mencoba untuk mengaktifkan penggunaan file htaccess di Ubuntu 14.04 (Apache 2.4.7). Saya tahu bahwa pertanyaan ini memiliki banyak kemungkinan duplikat, tetapi belum ada yang membantu saya.

.htaccess

ErrorDocument 404 /404.html

000-default.conf

<VirtualHost *:80>
AccessFileName .htaccess

ServerAdmin webmaster@localhost
DocumentRoot /var/www

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory /var/www/>
  Options Indexes FollowSymLinks Includes
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>
</VirtualHost>

Apa lagi yang dibutuhkan?


1
Arahan AllowOverride All memungkinkan semua opsi dalam file .htaccess. 000-default.conf mengasumsikan bahwa hanya ada satu situs di server Anda. Apakah file .htaccess tidak berfungsi untuk Anda? Apakah ada lebih dari satu situs yang dihosting di server ini?
closetnoc

Ada banyak folder di / var / www tetapi tidak ada host virtual yang dibuat. / etc / apache2 / sites-available / folder berisi dua file, 000-default.conf dan default-ssl.conf. File htaccess terletak di / var / www /
David ZIP

Mungkin 'DocumentRoot / var / www /'? (trailing slash)
Kovah

Periksa untuk memastikan / etc / apache2 / situs-enabled / berisi tautan ke 000-default.conf. Jika Anda mengubah file /var/www/index.html Anda dapat melihat perubahan saat Anda melihat server dengan browser web, bukan?
Stephen Ostermiller

Jawaban:


26

Langkah pertama

Buka file sebagai

sudo vim /etc/apache2/apache2.conf

Tahap kedua

hapus tanda komentar (#) jika Anda menemukannya sebelum baris ini (nomor baris sekitar 187)

AccessFileName .htaccess

Langkah ketiga

Kemudian cari garis di mana ada

<Directory /var/www/>
     Options Indexes FollowSymLinks
     AllowOverride None
     Require all granted
</Directory>

ganti "None" dengan "All"

AllowOverride All

Dan voila ... .htaccessberhasil !!


3
perubahan tidak berlaku sampai saya memulai kembali Perintah apache: service apache restart
Tahir Yasin

1
Saya sarankan, seperti @TahirYasin menyebutkan, restart apache. sudo service apache2 restart.
www139


1

Dalam kasus saya, perubahan AllowOverride Noneke AllowOverride Alldalam /etc/apache2/sites-enabled/000-default.conf membantu.

Semua file .conf lainnya sudah ada AllowOverride All.


0
  1. Di /etc/apache2/apache2.conf hapus tanda komentar ( #) dariAccessFileName .htaccess
  2. Nama file konfigurasi Apache Anda tidak standar. Anda dapat mengubah nama ke default.conf di Windows dan mengganti nama ke default di Linux. Di OS berbasis Linux jalankan kode ini di terminal:

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

Diberi nama dengan nol sehingga muncul pertama kali secara alfabet Jika Anda memiliki file default.conf dan kemudian membuat situs untuk anteater.com, maka trenggiling menjadi host default karena akan dimuat terlebih dahulu. Simpan 000 untuk mencegah masalah seperti itu. Nama file conf seharusnya tidak ada hubungannya dengan apakah .htaccess berfungsi atau tidak.
Stephen Ostermiller

1
'AccessFileName .htaccess' sudah dihapus komentarnya. Jawaban di atas membantu saya. Terima kasih.
David ZIP
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.