在我创建的Windows Server 2008上
reboltutorial.com [
root-dir %/www/
default [%index.html %index.rsp %index.php]
]
它返回404错误页面未找到。 Cheyenne仅适用于IP地址(http://88.191.118.45:2011/ ok http://reboltutorial.com,但也适用于ISS 7)。 如何解决这个问题?
更新:错误日志
Error in [conf-parser] : Can't access file www/ws-apps/ws-test-app.r
Error in [conf-parser] : Can't access file www/ws-apps/chat.r !
答案 0 :(得分:2)
您必须确保在安装了cheyenne的地图中有一个名为www
的目录。(默认目录%www/
)。
之后,请确保缺少www/ws-apps/ws-test-app.r
和www/ws-apps/chat.r
个文件。
答案 1 :(得分:1)
首先,HTTP 1.1通过TCP会话发送完整的URL(包括在Location:行上键入的域名)。这就是一个IP可以为多个域提供服务的方式(Apache称之为VirtualHosts),因此通过IP浏览将向任何获取请求的Web服务器发送不同的URL。
因此,以一种为IP地址与域提供不同页面的方式设置您的计算机并不是一个很好的技术谜团。但是,因为你在你的夏安配置中加入“reboltutorial.com”似乎 - 如果有的话 - 那个会在IP地址版本失败的情况下工作。
我没有运行Cheyenne,但您没有提供有关配置的更多详细信息。但是由于没有人回答,我查看了源代码树,就你可能会尝试的内容提供一些建议。
我们知道,由于错误的格式,Cheyenne正在收到请求并决定交回404。 Apache看起来不同:
http://reboltutorial.com/show-me-apache-404/
http://88.191.118.45:2011/show-me-cheyenne-404/
所以夏安正在收到请求。我们知道的很多。提供404的决定是在send-response in the HTTPd.r file中做出的。这是一个非常简单的测试:
if all [file? out/content not exists? out/content][
log/error ["File not found: " mold out/content]
out/code: 404
out/content: none
]
如果那是您生成404的地方,那么您的日志中应该有一个“找不到文件:”并提及该文件是什么。如果不是,就会发生一些奇怪的事情。你可以在那里扔东西(如果你怀疑打印输出,甚至是quit
)只是为了确保它到达那条线。
(仅供参考:未来当你看到其他的夏安问题时,会有一个名为“详细程度”的设置会影响输出,你可以在on-received in the HTTPd.r file中看到详细信息&gt ; 0它会在收到请求时记录:
if verbose > 0 [
log/info ["================== NEW REQUEST =================="]
log/info ["Request Line=>" trim/tail to-string data]
]
如果你提高了详细程度,你可能会很快找到问题的迹象。如果没有,代码是相当可读的,您可以放入自己的跟踪点。)