私はColdFusionで構築しているアプリケーションを持っています。これにより、すべてのリクエストがindex.cfmファイルを介して実行されます。
URLを書き換える.htaccessファイルがあります。だから、例えば...私が書いた場合:
http://domain.com/hello/goodbye/howdy
実際のリクエストは常に次のようにindex.cfmを使用します。
http://domain.com/index.cfm/hello/goodbye/howdy
これはすべてうまく機能しますが、URLにあるすべてのものを取得する方法に固執しています。CGI変数の1つが、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()#" />
成功しない:(