没有文件扩展名的网页

Posted

技术标签:

【中文标题】没有文件扩展名的网页【英文标题】:Webpages without a file extension 【发布时间】:2014-12-14 00:36:54 【问题描述】:

我可以在那个网站上看到网址是http://***.com/questions/ask。 之后没有文件扩展名,如果 ask 是一个文件夹,并且其中包含一个 index.aspx,例如,它会显示为 http://***.com/questions/ask/。 他们是怎么做到的?他们如何使扩展消失? 谢谢,幻影

【问题讨论】:

你问的是什么? 请问他们是怎么做到的? How to hide the .html extension with Apache mod_rewrite的可能重复 【参考方案1】:

他们正在使用一种称为重写规则的东西,可能在网站 Web 根目录的 .htaccess 文件中。他们在 .htaccess 文件中添加了类似的内容

RewriteEngine On # 开启重写引擎

RewriteRule ^ask/?$ questions.php?questionID=1 [NC,L]

【讨论】:

你能解释一下重写规则是什么意思吗?【参考方案2】:

他们是怎么做到的?他们如何使扩展消失?

扩展并没有消失,只是没有扩展。在最近(比如 15 年)的 Web 编程世界中,Web 应用程序不再是一堆实际文件的实际目录。 Web 应用程序现在有许多不同的体系结构并应用了许多模式。 Web 服务器也可以通过 URL 重写扩展提供这样的功能。两者通常也结合使用。

实现这一点的最常见模式是Front Controller。这个想法是所有请求都进入一个单一的入口点。然后,此入口点可以决定执行哪些代码来生成输出。在大多数 MVC 框架中,前端控制器名称(通常是 index.php)之后的 URI 用于确定要调用哪个控制器类和控制器方法,尽管现在它们通常是可配置的。

http://***.com/questions/ask的例子中,一种可能的方案是:

    Web 服务器将 URL 重写为 http://***.com/index.php/questions/ask index.php 作为前端控制器,然后分析其名称后的URI段,即/questions/ask 然后它构造一个类questions 的实例并调用它的ask 方法 该方法生成输出,然后作为请求的响应发回

【讨论】:

感谢您的回答。我现在明白这个话题了,谢谢!

以上是关于没有文件扩展名的网页的主要内容,如果未能解决你的问题,请参考以下文章

扩展名为.js是啥文件,做啥用的,

前端入门

arcgis文件的扩展名都有哪些分别代表啥意思

访问网页时出现“403-Forbidden”代表啥意思?

如何在 URL 中没有 .php 扩展名的情况下执行 PHP 网页?

001 客户端和服务器端 文件名和扩展名