PHP 链接 - foo --> foo.php

PHP 链接 - foo --> foo.php

我不确定这是否属于这里或 Doctype,所以我决定在这里发布。

我的问题很简单 - 我的网站上的大多数链接,如果你直接从主页复制位置,它将类似于 www.example.com/dog/foo

并返回 404。但如果您输入 www.example.com/dog/foo.php,则会显示正确的页面。

有没有什么办法可以让每个页面都自动添加 .php?

提前致谢。

答案1

如果您使用的是 Apache 服务器,则可以使用 .htaccess 文件。但您甚至不需要实际名为 foo.php 的文件。请参阅此示例:

RewriteEngine On
RewriteRule nice/link/name$ foo.php?param=value

这会将链接 example.com/nice/link/name 指向根目录中的脚本 foo.php,甚至添加一个参数。许多使用 .htaccess 文件的网站都使用它。您可以根据自己的需要使用以下重写规则:

RewriteEngine On
RewriteRule dog/(.*)$ dog/$1.php

答案2

除了重写 URL,您可能还对 MultiViews 感兴趣,它允许您example.com/dog/foo.php以 为导航example.com/dog/foo。我个人更喜欢 MultiViews,因为它允许您查看实际 php 文件的example.com/view/8-26-2010/stuff/you/posted位置以及传递给它的查询。无论如何,要启用 MultiViews,请将其放入您的view/8-26-2010/stuff/you/posted/.htaccess

Options Indexes FollowSymLinks Includes MultiViews

答案3

您在 Apache 中寻找的选项是MultiViews。在 .htaccess 文件或主 Apache 配置文件中设置此选项后Options,它将告诉 Apache 查找任何具有其可识别扩展名的文件,并在未提供更完整的文件名时显示该文件。这确实要求扩展名(在本例中为 .php)必须配置为正确的处理程序,但如果提供完整文件名(foo.php)有效,那么这应该不是问题。

相关内容