如何获得没有任何文件扩展名的用户友好URL?

use*_*130 4 html url webserver web

很长一段时间以来,我一直在想人们如何在不使用文件扩展名(例如“ .html”或“ .apsx”)的情况下使URL正常工作。

看看这个网站例如:

http://www.axongarside.com/Communication
http://www.axongarside.com/Communication/Compleat
http://www.axongarside.com/Brand
http://www.axongarside.com/Brand/K3-Group
Run Code Online (Sandbox Code Playgroud)

他们是如何做到的?我能想到的唯一方法是为每个页面创建一个新目录,并在每个目录中都有一个索引页面,但这对于较大的网站而言将是一个巨大的麻烦。还有其他办法吗?

谢谢

Que*_*tin 5

三种最常见的方式是:

  • 使用索引页(即仅创建目录并index.html在其中放置文件)。
  • 使用重写引擎(例如Apache的mod_rewrite)将URL映射到不同的文件(这是PHP领域的一种常见方法)。
  • 使用前端控制器脚本为您处理URL(这是MVC框架的常用方法)。

后一种方法将在Apache服务器配置中使用以下方式:

WSGIDaemonProcess example processes=2 threads=15 display-name=%{GROUP}
WSGIProcessGroup example
WSGIScriptAlias / /hosts/example.com/application/wsgi.py
Run Code Online (Sandbox Code Playgroud)

要么

SetHandler fcgid-script
Alias / /hosts/example/application.fcgi/
Run Code Online (Sandbox Code Playgroud)

对于使用WSGI(Python)或FastCGI(跨语言的脚本),该特定示例分别来自我正在编写的Perl应用程序。

URL格式将由脚本本身处理,并且不同的框架采用不同的方法来解决此问题。

在Catalyst中,这是通过为子例程名称提供属性来完成的。

Dancer有其自己的路由处理程序语法

Web :: Simple使用子例程原型

Django使用包含模式列表的单独文件