我使用mod_fcgid在Apache内部工作FastCGI PHP。 但是我注意到PHP脚本甚至没有指定后缀.php。
例如:如果文件是mail.php那么http://example.com/mail.php和http://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最符合客户的要求。
而且应该是这个(执行没有后缀)禁用?
由你决定。 默认情况下,这种行为被禁用。