简体   繁体   中英

Apache doesn't execute script of index.php in root automatically

This is strange: my Apache is configured with DirectoryIndex index.html,index.php so when I type http://gustavopi-macmini.local/ it searches for index.php and loads it ok if there is only html tags in the file.

But if I put some php script in index.php , it loads index.html.en instead (It Works!). However, if I type http://gustavopi-macmini.local/index.php it loads and executes the script.

Also, if I put an index.php file in a subdirectory and type http://gustavopi-macmini.local/somesubdirectory/ it loads and executes index.php normally as it should...

Why this strange behavior of "jumping" from a php script in the root occurring?

The order of the defined 'directory index' files also determine their priority.

In your situation, if both an index.html and a index.php are present, Apache will pick the index.html .

To change this, change the order of the 'directory index' files;

DirectoryIndex index.php index.html

Read the documentation here:

http://httpd.apache.org/docs/2.2/mod/mod_dir.html

Don't put comma (,) between index.html and index.php and as it is said by "thaJeztah" the order in the directive DirectoryIndex is important and it defines the file that will be served if there is the two files index.html and index.php in the requested directory:

If you want to give priority to index.html write this:

DirectoryIndex index.html index.php

If you want to give priority to index.php write this:

DirectoryIndex index.php index.html

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM