我已将几个文件上传到我的服务器,这真是令人费解。主页保存为index.html
,当我输入所述页面的URL时,它奇迹般地,并且非常成功地显示了正确的页面。我的其他页面怎么样?我已从主页链接到它们,代码如下:
<a href="http://www.example.com/about/">About Us</a>
我的html文件,大概叫做about.html,应该知道它的网址是“http://www.example.com/about/”?我正在配音这个“未答复的问题”,因为我查看了大量的元数据示例,而且没有任何关于指定页面的URL的信息。
答案 0 :(得分:3)
这取决于您运行的服务器类型。
如果它是最简单的静态文件服务器,没有网址aliasing或rewriting,那么网址将直接映射到文件:
如果您的“网络根目录”为/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:
有太多不同类型的服务器执行此功能以将它们全部列出,但基本思想是程序捕获对服务器的请求,然后程序根据路径决定输出内容。 / p>
例如,程序可能会为基本匹配规则执行不同的路由:
/
示例包括:
最后,HTML页面中的链接只会更改位置栏的URL。无论服务器上存在什么,HTML链接的行为都是相同的。反过来,服务器只响应HTTP请求,只生成浏览器消耗的资源(HTML,图像,CSS,JavaScript等)。服务器仅提供这些资源,并且没有任何特殊的行为链接。
/
)。当用户点击链接时,位置栏的全部内容将替换为此。<a href="http://www.example.com/about/">Example.com about</a>
)开头的网址。域名后面的所有内容都将替换为此链接的内容。<a href="/about">about</a>
)之后的所有内容都将替换为此链接的内容。示例:
mydomain.com
链接到您的网站。/about
,则会链接到about.html
。我的html文件(大概叫做about.html)应该知道它的网址是“scheme”吗?
首先,文件本身不知道它的URL是什么。除非:
其次,如果网址为/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页面,如果你想要使用它们,其他页面应该在某处明确引用。