我在 ColdFusion 中构建了一个应用程序,所有请求都将通过 index.cfm 文件运行。
我有一个重写 URL 的 .htaccess 文件。所以,例如......如果我写:
http://domain.com/hello/goodbye/howdy
实际请求总是像这样使用 index.cfm:
http://domain.com/index.cfm/hello/goodbye/howdy
这一切都很好,但现在我不知道如何获取 URL 中的所有内容。似乎没有一个 CGI 变量不输出 URL 的“/hello/goodbye/howdy”部分。
我试过 cgi.path_info 和 cgi.query_string 等都无济于事......它们只是空白。
我需要获取域名之后的所有内容,并用它在 CF 中做一些事情。我知道这在 JS 中是可能的,但我真的需要在服务器上这样做。
转储 CGI 范围在这方面没有任何用处:
<cfdump var="#cgi#" />
这是我的 htaccess 文件供参考:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.cfm$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.cfm [L]
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} !^([^\.]+)\.domain\.com
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
谢谢。
编辑:
作为附加说明,我还尝试了像这样的底层 Java 方法:
<cfdump var="#getPageContext().getRequest().getContextPath()#" />
<cfdump var="#getPageContext().getRequest().getRequestURL()#" />
<cfdump var="#getPageContext().getRequest().getQueryString()#" />
没有成功:(