什么HTTP标头指示何时提供Index.html?

时间:2013-09-09 15:33:58

标签: http-headers

请原谅这个尴尬的标题:我正在构建一个简单的Web服务器(不要问......)并且遇到这个问题:

浏览器请求mydomain.com/MyFolder

我的服务器发现这是一个文件夹,因此提供mydomain.com/MyFolder/index.html

到目前为止一切正常,但index.html已链接到mycss.css,但浏览器会将其作为顶级文件mydomain.com/mycss.css而非mydomain.com/myFolder/mycss.css请求。

是否有一些HTTP标头需要设置以指示已提供其他页面?我尝试过返回Content-Location: /myFolder/index.html,但没有取得任何明显的成功。

index.html基本上包含这个:

<link rel="stylesheet" href="mycss.css" />

4 个答案:

答案 0 :(得分:1)

返回301 Moved Permanently状态代码,而不是200。 提供指向同一网址的Location标头以及结尾/

中的斜杠

像这样:

Location: mydomain.com/MyFolder/

不要在同一个请求上提供index.html文件,等待浏览器再次使用斜杠请求。

答案 1 :(得分:-1)

你能不能试着改变这个:

<link rel="stylesheet" href="mycss.css" />

到此:

<link rel="stylesheet" href="/myFolder/mycss.css" />

答案 2 :(得分:-1)

或者只是尝试将这样的内容添加到.htaccess文件中:

RewriteEngine On
RewriteBase /

RewriteRule   ^(.+)$ myFolder/$1

答案 3 :(得分:-1)

好的,实际上给出的信息不正确所以我正在修改答案。如果要实现Web服务器,则必须遵循标准规范。定义<link rel="stylesheet" href="mycss.css" />将从与(index.html)中定义的文件相同的位置检索CSS文件。使用相对路径时,不是从特定位置请求的浏览器,而是Web服务器应确定从中提供资源的位置。

检查标准文件中的第2.4.6和3节:http://www.ietf.org/rfc/rfc1808.txt

换句话说,如果资源的路径不是以斜杠(/)开头,则将其视为相对路径,并且应相对于基本URL定位。

相关问题