configuration为FastCGI的PHP的Apache和不带后缀的脚本

我使用mod_fcgid在Apache内部工作FastCGI PHP。 但是我注意到PHP脚本甚至没有指定后缀.php。

例如:如果文件是mail.php那么http://example.com/mail.phphttp://example.com/mail返回相同的PHP文件mail.php

这是常见的行为? 而且应该是这个(执行没有后缀)禁用?

我的Apacheconfiguration是:

 AddHandler fcgid-script .php <Directory "{WwwRoot}"> Options -Indexes MultiViews FollowSymLinks +ExecCGI FCGIWrapper {ConfigsRoot}/fcgi-php5 .php Order allow,deny allow from all </Directory> 

用简单的包装

 #!/bin/sh PHP_FCGI_CHILDREN=3 export PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=2000 export PHP_FCGI_MAX_REQUESTS /usr/bin/php5-cgi 

谢谢。

这是常见的行为?

这是你的具体设置。

解决scheme: Options -MultiViews

Apache手册说(你将不得不向下滚动一下):

MultiView的效果如下:如果服务器接收到/ some / dir / foo的请求,如果/ some / dir启用了MultiViews,并且/ some / dir / foo不存在,则服务器读取目录以查找名为foo.*文件,并且有效地伪造了一个types映射,它命名了所有这些文件,为它们分配了相同的媒体types和内容编码,如果客户要求其中一个名称的话,将会有相同的媒体types和内容编码。 然后select最符合客户的要求。


而且应该是这个(执行没有后缀)禁用?

由你决定。 默认情况下,这种行为被禁用。