没有文件扩展名的网页
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
方法
该方法生成输出,然后作为请求的响应发回
【讨论】:
感谢您的回答。我现在明白这个话题了,谢谢!以上是关于没有文件扩展名的网页的主要内容,如果未能解决你的问题,请参考以下文章