Apache Display / Change a Default Page Other Than index.html

How do I display or change a default page other than index.html or index.php under Apache web server?

You need to use DirectoryIndex directive under Apache to set a default page other than index.html or index.php.

ADVERTISEMENTS

The DirectoryIndex directive sets the list of resources or file to look for, when the client requests an index of the directory by specifying a / at the end of a directory name.

Edit httpd.conf

Open your Apache configuration file httpd.conf
# vi httpd.conf

Find out line that read as follows:
DirectoryIndex

Now set it as per your requirements:
DirectoryIndex index.html index.htm default.htm index.php index.pl

Save and close the file. Restart the Apache web server:
# /etc/init.d/httpd restart

Please note that if you do not have access to Apache configuration file. Add DirectoryIndex to your .htaccess file.

You can also specify php or pl dynamic script. Also note that the documents do not need to be relative to the directory. Consider following example
DirectoryIndex index.html index.pl /nav/index.php

Above would cause the php script /nav/index.php to be executed if neither index.html or index.pl existed in a directory.

🐧 If you liked this page, please support my work on Patreon or with a donation.
🐧 Get the latest tutorials on SysAdmin, Linux/Unix, Open Source/DevOps topics:
CategoryList of Unix and Linux commands
File Managementcat
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network Utilitiesdig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNAlpine CentOS 8 Debian 10 Firewall Ubuntu 20.04

ADVERTISEMENTS
17 comments… add one
  • Adribabe Oct 9, 2008 @ 3:55

    THANK YOU SO MUCH :)
    I was unable to have Drupal working until I did this. Great :D

  • Naseem Dec 8, 2008 @ 13:21

    Thank u very much… I had same problem with drupal but solved now , and I can view all pages of Drupal.

  • Uday Jan 13, 2009 @ 5:31

    Thank you very much.

  • takaru May 28, 2009 @ 4:28

    thanks for the guide

  • MrKIPS Jul 22, 2009 @ 15:11

    Hi, although apache manuals contain this information, your website gives solutions for commonly sought after problems/questions. Useful indeed! Thank you.

  • nikhil Sep 16, 2009 @ 13:40

    What do you to if you wanted to change your default desktop?

    A.Use the switchdesk program.
    B.Edit /etc/X11/prefdm.
    C.Open the .Xdefaults file in your home directory.
    D.Link startx to gnome-session or startkde.

  • Drew Oct 27, 2009 @ 17:18

    Just a note, you don’t have to restart the server to make these changes you can use the reload command

    /etc/init.d/apache2 reload

  • Amera Dec 29, 2009 @ 20:59

    Thank you very much.
    I had problem of setting my home page too.

  • soluicius Oct 26, 2010 @ 18:59

    yeah i have done that .. but now my apache list the script that in my index.php is :|…

  • Sumaroo Suyash Kumar May 4, 2011 @ 12:43

    Thanks,

    nice little article…works nicely

  • praveen Jul 4, 2011 @ 9:34

    how I can make all my php pages extenions(.php) should be shown as html extension(.html). Is there any way I can change that to .php files to .html when client acces the php pages? Please resolve the issue as soon as possible. Thanks!

  • Mohsin Sep 18, 2012 @ 19:02

    Thanks Alot:)
    I really appreciate!

  • JK Apr 10, 2013 @ 5:58

    Thanks for the information. It really helps a lot.

  • Mrudula Apr 10, 2013 @ 11:55

    Wooooohhooooo…!!! It worked.. :)
    Thanks

  • lalitha Nov 20, 2013 @ 6:12

    how can i make this work if im hosting two webpages? using VirtualHost

  • Gunasekhar Jan 24, 2014 @ 10:31

    Thank u sir

  • luniga Mar 1, 2014 @ 6:14

    Thanks… it works

Leave a Reply

Your email address will not be published.

Use HTML <pre>...</pre>, <code>...</code> and <kbd>...</kbd> for code samples.