[已解决问题] 如何判断一个URL是文件名还是目录名?
提问时间: 2008-01-21 03:57
悬赏分:20 浏览:600 次

比如用户输入一个 http://127.0.0.1/xxx

也许这是根目录下一个 xxx 文件 ,也许这是一个xxx目录,真实访问的是 /xxx/index.html

如何判断呢?


提问者:flankerfc - 初学一级
最佳答案
你为什么需要知道这一点呢?对于HTTP来说,很有可能它使用了URL Rewrite机制。
不知道你的需求,我觉的你就直接使用HTTP请求这个页面。

如果他设置了默认文件,应该返回的就是默认文件的内容。
如果他使用了Rewrite, 你得到的就是他要给你看的内容。
如果他使用了重定向,应该从返回信息里面也可以拿到必要的信息,从新在请求重定向后的网页。
如果他什么都没有设置,应该会返回一个404(文件没有找到)的错误。

我知道的可能性就这些了。逐一尝试一下,应该就可以写出一个健壮的系统了。
2008/1/21 13:21:05 回答者:Colin Han


提问者对于答案的评价:谢谢大家了 时间隔得太久了 不好意思
其它回答(7)
假设为目录,看看是不是有子文件夹,没有就是文件了,有就是目录。不知我说的对不对
6个月前   回答者:Wilensky - 小虾三级
这个好像没有办法判断
除非你知道此服务器的默认文件,然后尝试访问文件,比如
http://127.0.0.1/xxx/index.html 如果能访问到,那肯定是目录了,访问不到也不一定就是文件
还有可能是URL Rewirte……
6个月前   回答者:丁学 - 大侠五级
因为有URL Rewrite,不能判断`~~


6个月前   回答者:沙加 - 老鸟四级
没有人规定一个URL必须对应一个物理文件/文件夹.

你去看一下MonoRail之类的Web框架,它一个Controller类可以对应好几个页面,你说怎么算?
6个月前   回答者:deerchao - 大侠五级
不能判断,URL Rewrite可以将把它作为一个单独的文件名来处理,也可以作为一个带参数的文件名来处理.如果不用URL Rewrite则可能是目录
5个月前   回答者:任力 - 小虾三级
对于一个HTTP请求,请求的对象是服务器,而并非某一个具体的目录和文件。由服务器解析你的request,并且作出响应。响应只是一个带状态的数据流,请求发起者最终想得到的也是这个数据流。所以,服务器如何产生这个数据流,对请求发起者来说是没有意义的。事实上很多情况下服务器的数据流既不是文件,也不是目录,而是一段应用程序的返回值而已

如果你想要问的是如何通过 http://127.0.0.1/xxx 也能访问 http://127.0.0.1/xxx/index.html 的话,这个去改服务器配置就行了
3个月前   回答者:棕熊 - 菜鸟二级
从理论上来说,一定是目录,默认首页都是有后缀的,没有后缀的文件是无法做为默认首页的
1个月前   回答者:我是才子 - 菜鸟二级
评论
   您需要登录以后才能回答!
我的问题    我要提问


快到期问题

> 问题排行榜

有不合适内容,建议去除