隐藏 URL 的 index.php(或 index.html)

Posted

技术标签:

【中文标题】隐藏 URL 的 index.php(或 index.html)【英文标题】:Hide index.php (or index.html) of an URL 【发布时间】:2010-11-20 07:04:26 【问题描述】:

当我在浏览器 (mysite.com) 中键入我的站点地址时,它会重定向到 mysite.com/index.php。为什么不 index.html ?因为我在 Apache 2.2 的 conf 文件中改了。

现在我想隐藏最后一个“index.php”部分。我该怎么做? index.html 和 index.php 会有什么不同吗?

如果通过查找 google,您最终会访问 www.google.com/index.html 会不会很丑? ...这只是为了美观,但上帝对某些人来说很重要。

【问题讨论】:

我重新标记了这个问题,删除了“隐藏”并替换为“mod-rewrite”,因为我认为这可能更相关。不过,我很高兴被证明是错误的 =) 重定向是什么意思?是外部重定向(URL 改变)还是内部重定向(/ 的请求返回与/index.php 相同)? 【参考方案1】:

我不知道你为什么需要使用 mod_rewrite。在我的网站上,我没有做任何事情来隐藏 index.php,我只是没有将它指向代码中的任何地方,所以我只写 www.example.com/index.php?task=forum 而不是 www.example.com/?task =论坛。它适用于标准 apache 配置。

【讨论】:

同意。这么简单的事情你不需要 MOD_REWRITE。 我会尝试并回复你。 嗯,我有点困惑......我稍后会在其他代码中引用 index.php,但这并不重要。当我编写 mysite.com 时,我被引用到运行 apache 的服务器机器。 Apache 然后显示 index.html。但我从不专门提及它。 检查您被推荐到服务器的位置。可能是httpd配置错误。【参考方案2】:

如果它正在重定向(例如,通过在 HTTP 标头上发送一个新位置),那么您只能更改执行重定向的代码。

另一方面,如果您的 WebServer 是 Apache,那么有一个配置指令可能会有所帮助:

目录索引

当您将其设置为:index.phpindex.html 时,当您点击服务器上设置 DirectoryIndex 指令的目录。

我想如果你在SERVERFAULT 上发帖,你会得到更好的答案。

祝你好运。

【讨论】:

我可能不清楚,但说“我在 Apache 的 conf 文件中更改了它”的部分就是这个意思。它设置为 index.php。【参考方案3】:

这似乎在我的环境中工作(不会显示 index.php):

        <form action="." method="POST">
       E-mail: <input type='password' size='50' name='email' />
       <input type='submit' value='Login' />
    </form>

【讨论】:

【参考方案4】:

您可以通过 http.conf 文件或应用程序目录中的单个 .htaccess 文件中的 URL 映射轻松地做到这一点。打开mod rewrite。 Here 是一个简单的教程。

【讨论】:

我喜欢你的回答,但我认为 Pablo Santa Cruz 和 Thinker 是对的:我不需要深入研究来解决我的具体问题。杀死苍蝇不需要大炮。 同意,如果您只想处理 index.html,那是正确的。如果您有多个“控制”页面,则需要 mod_rewrite。

以上是关于隐藏 URL 的 index.php(或 index.html)的主要内容,如果未能解决你的问题,请参考以下文章

thinkphp5.0如何隐藏index.php入口文件

ThinkPHP 隐藏URL中的 index.php

IIS 环境 CodeIgniter 隐藏 URL 中的 index.php

关于URL隐藏index.php方法

CodeIgniter - 如何从 URL 中隐藏 index.php

nginx URL隐藏index.php