我不确定这是否属于这里或 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)有效,那么这应该不是问题。