2

有时当我查看网站 URL 时,它会说这样的话

www.website.com/index.php

其他时候看起来像这样

www.website.com/index/

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

4

1 回答 1

6

在正常配置的 Web 服务器中,

www.website.com/index.php

告诉它从 webroot 目录加载 index.php 文件。这

www.website.com/index/

告诉它在/index/目录中查找与服务器的httpd.conf文件或网站的 webroot 目录中的.htaccess文件中的DirectoryIndex配置指令中列出的文件匹配的文件(参见http://httpd.apache .org/docs/2.2/mod/mod_dir.html#directoryindex了解详细信息)。

示例配置指令如下所示:

DirectoryIndex index.php index.html default.html default.htm

这将告诉 web 服务器,当没有给出文件名时,在当前目录中查找index.php文件,如果没有找到index.html文件,如果没有找到default.html文件等等对于在线上的所有其他内容。

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

ForceType application/x-httpd-php 

这将告诉 Apache 将所有文件作为 PHP 处理,无论它们是否具有.php扩展名。(见http://httpd.apache.org/docs/2.2/mod/core.html#forcetype

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

于 2013-04-20T01:33:27.040 回答