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?

David ZIP
sumber
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 !!

Anil
sumber
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
7

Aktifkan ModRewrite:

sudo a2enmod rewrite
sudo /etc/init.d/apache2 restart
Eder Araujo de Souza
sumber
1
The serviceperintah sekarang cara yang lebih disukai untuk me-restart Apache: sudo service apache2 restart.
Stephen Ostermiller
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.

Lyubov Zhurba
sumber
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
    
Huseyin
sumber
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