我看过像 website.com/admin / 这样的网址,它们在最后一个斜线后实际上并没有显示“index.html”或文件名。这是如何实现的?
谢谢!
答案 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)
至少有三种不同的方式......
答案 9 :(得分:0)
由于这里没有人有答案,所以答案是:
大多数网络服务器都会查找索引文件index.html
。您看到的/admin
是目录或“文件夹”。所以你必须做的是用你的webhost创建一个文件夹并将文件放在那里,确保在导航到/Whatever
到index.html
时重命名要显示的文件...