没有文件扩展名的网页

时间:2014-10-18 16:06:06

标签: url web file-extension

我可以在该网站上看到该网址为http://stackoverflow.com/questions/ask。 之后没有文件扩展名,如果询问是一个文件夹,并且在index.aspx内,它看起来像http://stackoverflow.com/questions/ask/
他们是怎么做到的?他们如何使扩展消失? 谢谢,幻影

2 个答案:

答案 0 :(得分:7)

  

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

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

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

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

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

答案 1 :(得分:3)

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

RewriteEngine On#打开重写引擎

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