Apache doesn't execute script of index.php in

2019-07-15 13:36发布

问题:

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?

回答1:

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



回答2:

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



标签: php apache http