为什么有些网站的文件扩展名末尾不显示.php?

为什么有些网站的文件扩展名末尾不显示.php?,php,html,url,Php,Html,Url,有时当我看到一个网站的URL时,它会这样说 www.website.com/index.php 其他时候会是这样的 www.website.com/index/ 为什么第二个URL没有.php或.html扩展名?在正常配置的web服务器中 www.website.com/index.php 告诉它从webroot目录加载index.php文件。这个 www.website.com/index/ 告诉它在/index/目录中查找与服务器的httpd.conf文件中的DirectoryIndex

有时当我看到一个网站的URL时,它会这样说

www.website.com/index.php

其他时候会是这样的

www.website.com/index/


为什么第二个URL没有.php或.html扩展名?

在正常配置的web服务器中

www.website.com/index.php
告诉它从webroot目录加载index.php文件。这个

www.website.com/index/
告诉它在/index/目录中查找与服务器的httpd.conf文件中的DirectoryIndex配置指令或网站的webroot目录中的.htaccess文件匹配的文件(有关详细信息,请参阅)

示例配置指令如下所示:

DirectoryIndex index.php index.html default.html default.htm
这将告诉web服务器,当没有给出文件名时,在当前目录中查找index.php文件,如果找不到,则查找index.html文件,如果找不到default.html文件,依此类推,查找行中的所有其他文件

如果您希望能够运行PHP文件,而不必在其末尾添加.PHP,则可以在配置文件(httpd.conf或.htaccess)中设置默认处理程序,例如:

这将告诉Apache将所有文件作为PHP处理,无论它们是否具有.PHP扩展名。(见附件)


如果愿意,您也可以使用ModRewrite重新映射URL,但是ModRewrite指令可能会令人困惑,并且很难排除故障。

通常使用“URL重写”来调用和实现它。Google for and
RewriteRule
s。尽管在这种情况下/示例中,它可能只是利用
多视图
路径_INFO
@mario,为什么不将其作为答案发布呢?使用mod_rewrite,所有传入的请求都可以转发到一个PHP处理脚本,比如index.PHP,然后该脚本解释url路径和查询字符串,调用其他脚本,并生成动态响应。许多框架都是这样工作的,因此应用程序只有一个入口点,可以在不重复代码的情况下进行初始化和配置。感谢您的回复!我找到了一篇关于使用mod_rewrite的详细文章。很抱歉我对这个问题一无所知,谢谢久保多的解释。另外,如果有人想回答这个问题,我很乐意接受,这样这个问题就可以解决了。
ForceType application/x-httpd-php