Mic*_*umo 4 coldfusion .htaccess url-rewriting railo bluedragon
我有一个我在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#" />
Run Code Online (Sandbox Code Playgroud)
这是我的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>
Run Code Online (Sandbox Code Playgroud)
谢谢.
编辑:
另外需要注意的是,我也尝试了类似的底层Java方法:
<cfdump var="#getPageContext().getRequest().getContextPath()#" />
<cfdump var="#getPageContext().getRequest().getRequestURL()#" />
<cfdump var="#getPageContext().getRequest().getQueryString()#" />
Run Code Online (Sandbox Code Playgroud)
没有成功:(
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.cfm$ - [L]
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} !^([^\.]+)\.domain\.com
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
#Change exists here:
RewriteRule ^(.*)$ /index.cfm?actualuri=$1 [L,QSA]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
cgi.query_string现在试试.应该有actualuri=/the/path/sent.
另外,将重写规则与上面的顺序放在一起.
| 归档时间: |
|
| 查看次数: |
4044 次 |
| 最近记录: |