Ubuntu'da Apache'de .htaccess kullanımını nasıl etkinleştirebilirim?


15

Ubuntu 14.04 (Apache 2.4.7) içinde htaccess dosyasının kullanımını etkinleştirmeye çalışıyorum . Bu sorunun birçok olası kopyası olduğunu biliyorum, ama hiçbiri henüz bana yardımcı olmadı.

.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>

Başka ne gerekiyor?


1
AllowOverride All yönergesi .htaccess dosyasındaki tüm seçeneklere izin verir. 000-default.conf, sunucunuzda yalnızca bir site olduğunu varsayar. .Htaccess dosyası sizin için çalışmıyor? Bu sunucuda birden fazla site barındırılıyor mu?
closetnoc

/ Var / www içinde çok sayıda klasör var, ancak sanal ana bilgisayar oluşturulmadı. / etc / apache2 / sites-available / klasöründe 000-default.conf ve default-ssl.conf olmak üzere iki dosya bulunur. htaccess dosyası / var / www / 'de yer almaktadır
David ZIP

Belki 'DocumentRoot / var / www /'? (sondaki eğik çizgi)
Kovah

/ Etc / apache2 / sites özellikli / öğesinin 000-default.conf dosyasına bir bağlantı içerdiğinden emin olun. /Var/www/index.html dosyasını değiştirirseniz, sunucuyu bir web tarayıcısıyla görüntülerken değişiklikleri görebilirsiniz, değil mi?
Stephen Ostermiller

Yanıtlar:


26

İlk adım

Dosyayı şu şekilde aç

sudo vim /etc/apache2/apache2.conf

İkinci adım

bu satırdan önce bulursanız yorum işaretini (#) kaldırın (satır numarası yaklaşık 187)

AccessFileName .htaccess

Üçüncü adım

Ardından,

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

"Hiçbiri" yerine "Tümü" yazın

AllowOverride All

Ve işte ... .htaccessçalışıyor !!


3
apache yeniden başlatılıncaya kadar değişiklikler etkili olmadı Komut: service apache restart
Tahir Yasin

1
@TahirYasin'den bahsettiğim gibi apache'yi yeniden başlatmanızı öneririm. sudo service apache2 restart.
www139


1

Benim durumumda değişen AllowOverride Noneiçin AllowOverride Allde /etc/apache2/sites-enabled/000-default.conf yardımcı oldu.

Diğer tüm .conf dosyalarında zaten var AllowOverride All.


0
  1. Gelen /etc/apache2/apache2.conf kaldır comment işareti ( #) denAccessFileName .htaccess
  2. Apache yapılandırma dosyanızın adı standart değil. Sen bunu adlandırabilirsiniz default.conf Windows ve bunu adlandırmak varsayılan Linux. Linux tabanlı işletim sisteminde bu kodu terminalde çalıştırın:

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

Alfabetik olarak önce gelmesi için sıfırlarla adlandırılır. Bir default.conf dosyanız varsa ve anteater.com için bir site oluşturursanız, anteater ilk yüklendiği için varsayılan ana bilgisayar olur. Bu tür sorunları önlemek için 000'ı saklayın. Conf dosyasının adının, .htaccess öğesinin çalışıp çalışmadığıyla ilgisi yoktur.
Stephen Ostermiller

1
'AccessFileName .htaccess' zaten önerilmiyor. Yukarıdaki cevap bana yardımcı oldu. Teşekkürler.
David ZIP
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.