让我们说,在ColdFusion网站上,用户已导航到 http://www.example.com/sub1/
服务器端代码通常用于告诉您用户所在的URL,如下所示: http://#cgi.server_name##cgi.script_name#?#cgi.query_string#
但是,"cgi.script_name"会自动包含该文件夹的默认cfm文件 - 例如,该代码在解析和扩展时会向我们显示" http://www.example.com/sub1/index.cfm "
因此,无论用户是访问sub1/index.cfm还是sub1 /,"cgi.script_name"var都将包含"index.cfm".
问题是,如何确定用户实际访问的URL?这个问题主要是针对搜索引擎优化的目的 - 301通常更喜欢将"/index.cfm"重定向到"/"以确保任何一条内容只有一个网址 - 因为这主要是为了蜘蛛的利益,javascript isn在这种情况下是一个合适的解决方案.另外,假设一个人无权访问isapi_rewrite或mod_rewrite-问题是如何在ColdFusion中实现这一点,具体而言.
我想这是不可能的.
如果客户端请求"GET /",则在ColdFusion被调用之前,Web服务器将其翻译为"GET/{whatever-default-file-exists-fist}".(这对于Web服务器必须知道必须首先调用ColdFusion是必要的!)
从ColdFusion(或任何应用程序服务器)的角度来看,客户端请求"GET /index.cfm",这就是您所看到的内容#CGI#
.
正如您自己指出的那样,可以通过使用URL重写工具进行区分.既然你明确排除了这条道路,我只能说你在这里运气不好.