index.php varsayılan olarak yüklenmiyor


Yanıtlar:


153

Apache'nin index.php'yi bir dizin dosyası olarak tanıyacak şekilde yapılandırılması gerekir.

Bunu başarmanın en basit yolu ..

  1. Web kökünüzde bir .htaccess dosyası oluşturun.

  2. Satırı ekleyin ...

DirectoryIndex index.php

İşte konuyla ilgili bir kaynak ...
http://www.twsc.biz/twsc_hosting_htaccess.php

Düzenleme: Apache'nin .htaccess dosyalarına izin verecek şekilde yapılandırıldığını varsayıyorum. Değilse, apache'nin yapılandırma dosyasındaki (httpd.conf) ayarı değiştirmeniz gerekecektir.


4
Muhtemelen apache'nin yüklediği php.conf dosyasında olmalıdır.
staticsan

Php.ini'yi kastettiğini düşünüyorum. Ne olursa olsun, apache'si index.php'yi bir dizin indeks dosyası olarak tanımıyor. Php dosyalarını işlemenin başka bir apache yapılandırma sorunu olup olmadığı.
John Himmelman

1
apache'yi yeniden başlatmayı unutmayın !! yaptığım gibi! : /
Navid Einackchi

102

.Htaccess dosyasına 'DirectoryIndex index.php' eklerken işe yarayabilir,

NOT:

Genel olarak .htaccess dosyalarını asla kullanmamalısınız

Bu, http://httpd.apache.org/docs/1.3/howto/htaccess.html adresinden alıntılanmıştır. Bu, apache'nin
daha eski bir sürümünü ifade etse de, ilkenin hala geçerli olduğuna inanıyorum.

Senin için aşağıdaki ekleme httpd.conf (ona erişiminiz varsa) daha iyi formu olarak kabul edilir, daha az sunucu yükü neden olur ve aynı etkiye sahiptir:

<Directory /myapp>
DirectoryIndex index.php
</Directory>

4
bu dosyaya erişiminiz varsa her şey yolunda ve züppe
Hayden Thring

1
Bunun için +1. Httpd.conf'a erişiminiz olmadığı sürece tercih edilen yöntem budur.
Matthew Johnson

HTTPS kullanıyorsanız, bunu varsayılan ssl yapılandırma dosyasına eklemenin de uygun olduğuna inanıyorum.
Alex W

44

Tahminimce dizin dizininin index.html olarak ayarlandığını söyleyebilirim veya başka bir değişkeni deneyin:

DirectoryIndex index.html index.php

Bu yine de index.html'ye index.php'ye göre öncelik verecektir (bir bakım sayfası oluşturmanız gerekiyorsa kullanışlıdır)


Benimki buna benziyor ama maalesef index.php'yi çalıştırmak yerine indiriyor.
Webnet

@Webnet sonra Type ve LoadModules'i php olarak değiştirmeyi düşünmelisiniz, böylece php'yi okur [ stackoverflow.com/questions/5121495/…
Merey Nurlan

15

Bu birine yardımcı olabilir. işte httpd.conf'tan (Apache sürüm 2.2 pencereleri) pasaj

# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
    DirectoryIndex index.html
    DirectoryIndex index.php
</IfModule>

şimdi bu, index.html dosyasını arayacaktır, eğer bulunamazsa, index.php'yi arayacaktır.


3

Aşağıdakilerle bir .htaccess dosyası oluşturmayı deneyin

DirectoryIndex index.php

Düzenleme: Aslında, bir 'php-apache' paketi veya her ikisiyle birlikte yüklemeniz gereken bir şey yok mu?


3

Doğrudan yönetici tarafından barındırılan sitemizdeki bir siteyle aynı sorunu yaşadım. ekledim

DirectoryIndex index.php

bir site httpddosyasına kod ekler ve site daha sonra index.phpvarsayılan olarak çalıştırdı .


2

Benim için aynı sorun. Benim çözümüm, mod_dir'in etkinleştirilmemiş olması ve apache2'nin VirtualHost dosyamdaki yönergeyi okurken bir hata vermemesiydi:

DirectoryIndex index.html

Komutların kullanılması:

sudo a2enmod dir
sudo sudo service apache2 restart

Sorun düzeltildi.


1
Sanırım demek istiyorsun a2enmod?
TR_SLimey

1

Bilgi için: bazı Apache2 yapılandırmalarında, DirectoryIndex komutunu mods_enabled / dir.conf'a eklemelisiniz (apache2.conf'da bulunmaz)


1

Tüm bunları okuduktan ve düzeltmeye çalıştıktan sonra, ubuntu forumunda ( https://help.ubuntu.com/community/ApacheMySQLPHP ) basit bir çözüm buldum . Sorun libapache2-mod-php5 modülünde yatmaktadır. Tarayıcının web sayfasını göstermek yerine index.php dosyasını indirmesinin nedeni budur. Aşağıdakileri yapın. Sudo a2enmod php5 döner modülü yoksa, sorun libapache2-mod-php5 ile ilgilidir. Temizle sudo apt-get --purge komutuyla modülü kaldırın libapache2-mod-php5 kaldırın Sonra tekrar kurun sudo apt-get install libapache2-mod-php5


1

Benzer bir semptomum vardı. Yine de benim durumumda, aptallığım istemeden de web kök klasöründe boş bir index.html dosyasına sahip olmaktı. Açıkça index.php'yi istemediğimde, Apache bunu index.php yerine sunuyordu, çünkü DirectoryIndexaşağıdaki gibi yapılandırıldı mods-available/dir.conf:

DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm

Yani, 'index.html', öncelik listesinde 'index.php'nin önünde görünür. İndex.html dosyasını web kökünden kaldırmak sorunu doğal olarak çözdü. D'oh!


1

Ubuntu 16.04.4 LTS ve Apache / 2.4.18 için adım adım ve tam talimat

"sudo -s "

"cd /etc/apache2/mods-enabled "

" vi dir.conf" ve index.php'yi aşağıdaki gibi DirectoryIndex'ten sonra sağa taşıyın ve dosyayı kaydedin ve apache sunucusunu yeniden başlatın.

DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm

"service apache2 restart "

Dir.conf'u görmüyorsanız, yüklemeniz gerekir (nasıl yapılacağını google)

Bitti.


1

Bu gönderi eski olabilir, ancak başka birine yardımcı olması durumunda gönderiyorum, web kökünüzde bir .htaccess dosyası oluşturmanızı ve dizini değiştirmenizi tavsiye etmem. Adımları takip etmenin daha iyi olduğunu hissediyorum

  1. Apache klasörünüzün conf klasörüne gidin benimki

    C:\Apache24\conf

  2. Adlı dosyayı açın

    httpd.conf

  3. Bölüme git

    <IfModule dir_module>
       DirectoryIndex index.html 
    
     </IfModule>
  4. İndex.php'yi aşağıda gösterildiği gibi ekleyin

     <IfModule dir_module>
      DirectoryIndex index.html index.php
    
    </IfModule>

Bu şekilde, yine de varsayılan indeks olarak index.html ve index.php'yi seçer ancak index.html'ye öncelik verir çünkü index.html * index.php'den önce gelir. Bununla demek istediğim, aynı dizinde hem index.html hem de index.php'ye sahip olduğunuzda, daha önce ** index.php * yazmanız dışında, index.html varsayılan dizin olarak kullanılacaktır. index.hml'den

Umarım birine yardımcı olur ... Mutlu Kodlama


1

Bu bir cazibe gibi çalışıyor!

İlk

<IfModule dir_module>
    DirectoryIndex index.html
     DirectoryIndex index.php
</IfModule>

sonra ondan sonra

<Files ".ht*">
    Require all denied
</Files>

için

 <Files ".ht*">
    Require all granted
</Files>
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.