我需要指定网页的网址吗?

时间:2013-09-01 01:00:56

标签: html

我已将几个文件上传到我的服务器,这真是令人费解。主页保存为index.html,当我输入所述页面的URL时,它奇迹般地,并且非常成功地显示了正确的页面。我的其他页面怎么样?我已从主页链接到它们,代码如下:

<a href="http://www.example.com/about/">About Us</a>

我的html文件,大概叫做about.html,应该知道它的网址是“http://www.example.com/about/”?我正在配音这个“未答复的问题”,因为我查看了大量的元数据示例,而且没有任何关于指定页面的URL的信息。

6 个答案:

答案 0 :(得分:3)

这取决于您运行的服务器类型。

静态Web服务器

如果它是最简单的静态文件服务器,没有网址aliasingrewriting,那么网址将直接映射到文件:

如果您的“网络根目录”为/home/youruser/www/,则表示:

http://www.example.com -> /home/youruser/www/

任何路径(域名后面的所有路径)都直接转换为该网络根目录下的路径:

http://www.example.com/about.html -> /home/youruser/www/about.html

如果未指定文件,则网络服务器通常会自动查找“index.html”文件(即网址以/结尾):

http://www.example.com/ -> /home/youruser/www/index.html
http://www.example.com/about/ -> /home/youruser/www/about/index.html

在Apache中,搜索的文件名可以使用DirectoryIndex directive

进行配置
DirectoryIndex index.html index.txt /cgi-bin/index.pl

这意味着对以/结尾的路径的每个请求(并添加另一个规则,在某些常见设置下,如果路径为/,则http://www.example.com/ -> /home/youruser/www/index.html -> or /home/youruser/www/index.txt -> or /home/youruser/www/cgi-bin/index.pl *.(gif|jpg|css|js) -> look for and return the file from /home/user/static blog/* -> send to a "blog" program to generate the resulting page using a combination of templates and database resources 目录的名称,例如'about'):

http:

具有路径解释的Web服务器

有太多不同类型的服务器执行此功能以将它们全部列出,但基本思想是程序捕获对服务器的请求,然后程序根据路径决定输出内容。 / p>

例如,程序可能会为基本匹配规则执行不同的路由:

/

示例包括:

HTML页面中的链接

最后,HTML页面中的链接只会更改位置栏的URL。无论服务器上存在什么,HTML链接的行为都是相同的。反过来,服务器只响应HTTP请求,只生成浏览器消耗的资源(HTML,图像,CSS,JavaScript等)。服务器仅提供这些资源,并且没有任何特殊的行为链接。

  • 绝对网址是以mod_rewrite开头的网址(例如/)。当用户点击链接时,位置栏的全部内容将替换为此。
  • 域相对网址是以正斜杠(<a href="http://www.example.com/about/">Example.com about</a>)开头的网址。域名后面的所有内容都将替换为此链接的内容。
  • 相对网址是其他所有内容。 URL中最后一个目录(<a href="/about">about</a>)之后的所有内容都将替换为此链接的内容。

示例:

  • 我的“mydomain.com”页面可以像您一样使用mydomain.com链接到您的网站。
  • 如果我将链接更改为/about,则会链接到about.html

回答你的问题

  

我的html文件(大概叫做about.html)应该知道它的网址是“scheme”吗?

首先,文件本身不知道它的URL是什么。除非:

  • HTML是使用程序动态生成的。大多数服务器端语言提供了一种获取此功能的方法。
  • 在提供页面后,客户端脚本http://www.example.com/about/

其次,如果网址为/about且文件实际为about.html,则您可能正在进行某种重写。请记住最简单的路径,是字面翻译,{{1}}与{{1}}不同。

答案 1 :(得分:1)

只需使用/about.html链接到该页面

即可

答案 2 :(得分:1)

从理论上讲,文档中的网址相对会更好,因此您无需在更改域名或文件位置时更改它们。

例如,如果将其从localhost移动到托管服务器。

在您的示例中,代替www.example.com/about.html使用/about.html

答案 3 :(得分:0)

鉴于上面的链接,您需要一个名为index.html的页面,该页面位于名为about的目录中,以便您的示例正常工作。然而,这并不常见。

答案 4 :(得分:0)

我有点困惑,但这里有一些信息。任何名为“index”的文件都是尝试查看该目录时任何目录(文件夹)的默认显示页面。

文件夹中的所有文件始终相对于该目录。因此,如果您的链接位于不同目录中的文件中,则必须在该目录中键入该文件。如果它是同一目录,则无需键入该目录,只需输入文件名。

答案 5 :(得分:0)

about.html不知道它的URL是什么,它是调用index.html文件的about.html文件。

当您在任何给定目录中时,通过简单的相对链接链接到该目录中的其他页面:

<a href="/about.html">About Us</a>

提升目录,假设您在子文件夹(用户)中,也许您可​​以使用..运算符向上导航一个目录:

<a href="../about.html">About Us</a>

在您的情况下,您的about页面与您要链接的页面位于同一目录中,因此它将转到右侧页面。

另外(如果您有以下情况,我认为这可能就是您所要求的):

  

about.html
  about.php
  about.phtml
  about.jpg

例如,你访问http://www.yoursite.com/about它将自动显示html页面,如果你想要使用它们,其他页面应该在某处明确引用。