没有文件名的网址

时间:2010-03-15 02:45:56

标签: url

我看过像 website.com/admin / 这样的网址,它们在最后一个斜线后实际上并没有显示“index.html”或文件名。这是如何实现的?

谢谢!

10 个答案:

答案 0 :(得分:9)

URL指定资源的位置,但该资源不必实际映射到服务器上的物理文件。由服务器决定如何处理URL以及如何生成要返回的资源。

大多数网络服务器都是通过提供文件中的所有资源来启动的。因此,大多数网站将其页面作为文件提供,并且他们识别的URL具有相应的形式。如果网站仍在使用基于文件的Web服务器,则可以将其配置为默认情况下为特定文档提供服务(如果未指定文件)。

然而,最近,在将URL和实际文件分离的过程中出现了很大的变化。通常这是通过默认文档(如果URL未指定网络服务器配置为服务特定文件),URL路由(网络服务器根据将传入URL映射到实际资源的内部规则来路由请求处理)实现的。 ,URL重写(在处理之前将URL请求重写到不同的URL),或两者的组合。

特别是,MVC框架在很大程度上依赖于URL路由,因为基于MVC框架的Web应用程序公开的URL不指定服务器上文件的位置,实际上都是Web的代码执行路径应用程序。例如,http://example.org/user/details/12345不会在/ user / details文件夹中指定12345文件,但会指定应使用参数12345调用类User上的方法Details以生成响应。

答案 1 :(得分:3)

Web服务器的配置将URL映射到资源。大多数情况下,这是一个文件,如index.HTML或index.php,但不一定是文件 - 可以通过返回由a生成的内容来配置Web服务器以提供默认索引(或任何其他URL)模块或cgi。网址和文件之间不需要一对一。

答案 2 :(得分:1)

大多数Web服务器上都有一个配置选项,允许管理员设置一个或多个文件,以便在找不到文件名时查找。通常,它们还允许您按目录级别在目录上设置它。

另一种可能性,取决于网站,它使用技术来动态转换(也就是“重写”)URL,因此用户输入的URL对用户更有意义。对于使用MVC模板构建的站点,此技术很常见。

答案 3 :(得分:1)

在这种情况下,网络服务器会将URL重新写入真实文件(通常是“index.html”或“default.html”)。

答案 4 :(得分:1)

这取决于您的http服务器(apache ...)设置。例如,如果目录中存在index.php,它将自动加载。

修改

通过执行此类设置,您的浏览器不会更改地址从http://site.com/http://site.com/index.html

答案 5 :(得分:1)

除了默认文件(index.html,default.htm,default.aspx,...)之外,大多数Web服务器都允许URL重写,这意味着您可以将任何URL映射到任何资源。请参阅Apache模块mod_rewrite,或Windows应用程序和请求路由,或ISAPI重写模块。

答案 6 :(得分:0)

可能是配置了默认文档或网站正在使用MVC。

答案 7 :(得分:0)

除了网络服务器进行一些自动文件名称猜测之外,可能还有一个自定义应用程序运行自己处理URL。 URL只是一个URL,将其1:1映射到文件名只是一种方式。

答案 8 :(得分:0)

至少有三种不同的方式......

  1. 使用默认文档
  2. 使用URL Rewriting
  3. 使用MVC

答案 9 :(得分:0)

由于这里没有人有答案,所以答案是:

大多数网络服务器都会查找索引文件index.html。您看到的/admin是目录或“文件夹”。所以你必须做的是用你的webhost创建一个文件夹并将文件放在那里,确保在导航到/Whateverindex.html时重命名要显示的文件...