以没有页面名称结尾的网址

时间:2014-06-20 10:53:58

标签: url url-rewriting

感谢您阅读我的帖子。

如今,当人们在Web浏览器中访问网页时,导航栏中没有页面名称的URL非常频繁,例如:

http://www.example.com/foo/

我习惯了这些以页面名称结尾的网址:

http://www.example.com/welcome.html
http://www.example.com/welcome.php
http://www.example.com/welcome.jsp
  • 我熟悉HTML。
  • 我目前的网站是用PHP编写的,我正在维护它。
  • 我目前正在编写Java Webapps(包括.jsp文件)。

在所有这些情况下,网址都以页面名称结尾,如上例所示。

所以我的问题是:

  • 当网址没有以页面名称结尾时,“where”是否来自?
  • 开发人员是否实际上使用某种机制隐藏了页面名称?
  • 这是一种允许使用没有页面名称的URL的特定技术吗?
  • 为什么会这样做?出于安全原因?

我希望我的问题足够清楚。

最好的问候。

2 个答案:

答案 0 :(得分:3)

更新的答案(感谢Tim和DarkBee)

该网站很可能使用Apache的mod_rewrite或IIS URL Rewrite module.

今天大量使用的一个例子是MVC应用程序模式。大多数MVC应用程序使用特定类型的路由,默认情况下是:

website.com/{controller}/{action}/{id}

然后允许您解决每个变量并相应地处理请求。路径只是抽象的,服务器上没有这样的文件夹结构,它只是给应用程序一组变量,它决定要显示的内容。

有关MVC的更多信息,请访问:http://www.asp.net/mvc

答案 1 :(得分:0)

无论是否是MVC,都是网址重写。在apache中,它实现如下:

RewriteEngine On

RewriteRule    ^step-1/?$                           step1.php    [NC,L] 
RewriteRule    ^step-2/?$                           step2.php    [NC,L]

这意味着当您单击这些链接时,您将看到步骤1而不是步骤1.php,依此类推。