index.phpがデフォルトでロードされない


回答:


153

Apacheは、index.phpをインデックスファイルとして認識するように設定する必要があります。

これを達成する最も簡単な方法。

  1. Webルートに.htaccessファイルを作成します。

  2. 行を追加...

DirectoryIndex index.php

これは問題に関するリソースです...
http://www.twsc.biz/twsc_hosting_htaccess.php

編集:.htaccessファイルを許可するようにapacheが構成されていると思います。そうでない場合は、Apacheの構成ファイル(httpd.conf)の設定を変更する必要があります。


4
おそらく、Apacheがロードするphp.confファイルにあるはずです。
staticsan

私はあなたがphp.iniを意味すると思います。とにかく、彼のapacheはindex.phpをディレクトリインデックスファイルとして認識していません。phpファイルの処理が別のapache構成の問題かどうか。
John Himmelman、

1
Apacheを再起動することを忘れないでください!! 私がしたように!:/
Navid Einackchi、2015

102

「DirectoryIndex index.php」を.htaccessファイルに追加すると機能する場合がありますが、

注意:

一般に、.htaccessファイルは使用しないでください

これはhttp://httpd.apache.org/docs/1.3/howto/htaccess.htmlから引用されて
います。これは古いバージョンのapacheを指しますが、原則はまだ当てはまると思います。

次のものをhttpd.confに追加すると(アクセスできる場合)、より適切な形式と見なされ、サーバーのオーバーヘッドが少なくなり、まったく同じ効果があります。

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

4
あなたがそのファイルへのアクセス権を持っている場合には、すべての罰金とダンディだ
ヘイデンThring

1
+1。httpd.confにアクセスできない場合を除き、この方法をお勧めします。
マシュージョンソン

HTTPSを使用している場合は、これをdefault-ssl構成ファイルに追加しても問題ないと思います。
Alex W

44

おそらく、ディレクトリインデックスがindex.htmlまたは何らかのバリアントに設定されていると思います。

DirectoryIndex index.html index.php

これにより、index.htmlがindex.phpよりも優先されます(メンテナンスページを表示する必要がある場合に便利です)。


鉱山はこのように見えますが、残念ながらそれを実行する代わりにindex.phpをダウンロードしています。
Webnet 2013年

それはPHPを読むよう@Webnetあなたは、PHPにタイプとのLoadModuleを変更することを検討すべきである[ stackoverflow.com/questions/5121495/...
Merey Nurlan

15

これは誰かに役立つかもしれません。これはhttpd.confのスニペットです(Apacheバージョン2.2ウィンドウ)

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

これでindex.htmlファイルが検索されますが、見つからない場合はindex.phpが検索されます。


3

以下を使用して.htaccessファイルを作成してみてください

DirectoryIndex index.php

編集:実際には、「php-apache」パッケージまたはそれらの両方でインストールするはずのものはありませんか?


3

直接管理者がホストするサイトのサイトにも同じ問題がありました。追加した

DirectoryIndex index.php

(サイトhttpdファイルにコードを追加する)カスタムのhttd拡張機能として、サイトはindex.phpデフォルトでを実行しました。


2

私にとって同じ問題。私の解決策は、VirtualHostファイルのディレクティブを読み取るときにmod_dirが有効にならず、apache2がエラーを発行しなかったことでした。

DirectoryIndex index.html

コマンドの使用:

sudo a2enmod dir
sudo sudo service apache2 restart

問題を修正しました。


1
と思いますa2enmodか?
TR_SLimey

1

情報:一部のApache2 confでは、mods_enabled / dir.confにDirectoryIndexコマンドを追加する必要があります(apache2.confにはありません)。


1

これらすべてを読んで修正しようとした後、ubuntuフォーラム(https://help.ubuntu.com/community/ApacheMySQLPHP)で簡単な解決策を得ました。問題はlibapache2-mod-php5モジュールにあります。これが、ブラウザーがWebページを表示するのではなく、index.phpファイルをダウンロードする理由です。以下をせよ。sudo a2enmod php5 returns moduleが存在しない場合、問題はlibapache2-mod-php5にあります。コマンドsudo apt-get --purge remove libapache2-mod-php5を使用してモジュールをパージ削除し、再度インストールしますsudo apt-get install libapache2-mod-php5


1

同様の症状がありました。私の場合でも、私の愚かさは、意図せずにWebルートフォルダーに空のindex.htmlファイルを持っていることでした。Apacheは、index.phpを明示的に要求しなかったときに、index.phpではなくこれを提供DirectoryIndexしていましたmods-available/dir.conf

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

つまり、優先度リストでは「index.html」が「index.php」の前に表示されます。index.htmlファイルをWebルートから削除すると、問題は自然に解決しました。ああ!


1

Ubuntu 16.04.4 LTSおよびApache / 2.4.18の手順と完全な手順

sudo -s

cd /etc/apache2/mods-enabled

" vi dir.conf"とindex.phpを以下のようにDirectoryIndexの直後に移動してファイルを保存し、Apacheサーバーを再起動します。

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

service apache2 restart

dir.confが表示されない場合は、それをロードする必要があります(方法についてはGoogle)

できました。


1

この投稿は古いかもしれませんが、他の人に役立つ場合にのみ投稿しています。Webルートに.htaccessファイルを作成してインデックスを変更することはお勧めしません。手順に従う方が良いと思います

  1. 私のApacheフォルダのconfフォルダに移動します

    C:\Apache24\conf

  2. という名前のファイルを開きます

    httpd.conf

  3. セクションに行く

    <IfModule dir_module>
       DirectoryIndex index.html 
    
     </IfModule>
  4. 以下に示すように、それにindex.phpを追加します

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

このように、index.htmlとindex.phpをデフォルトのインデックスとして選択しますが、index.htmlが* index.phpの前にあるため、index.htmlを優先します。つまり、index.htmlとindex.phpの両方が同じディレクトリにある場合、index.hmlの前に** index.php *と記述しない限り、index.htmlがデフォルトのインデックスとして使用されます。

私はそれが誰かを助けることを願っています... Happy Coding


1

これは魅力のように機能します!

最初

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

その後から

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

 <Files ".ht*">
    Require all granted
</Files>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.