次のようなURLから必要な情報を取得する方法についてです。
https://c.naXX.visual.force.com/apex/SamplePage?id=aaa
★".getUrl()"を使う
ApexPages.currentPage().getUrl()
上記のように記載するとURLから次の部分を文字列として取得できます。
"/apex/SamplePage?id=aaa"
注意点として"?"以降のパラメータ部分もついてきます。
"?"以降がいらない場合は"split"関数などで対応する必要があると思われます。
★".getHeaders().get('Host')"を使う
ApexPages.currentPage().getHeaders().get('Host')
上記のように記載するとURLから次の部分を文字列として取得できます。
"c.naXX.visual.force.com"
注意点としては"https://"の部分がついてこないことだと思います。
わかっていればそんなに問題でもないかも。
"Force.com Apex Code Developer's Guide"の"PageReference Class"に
記載されていることなんですけど、使ってみないと気付かないものですね。
他にも関数がいろいろあるので、気づいていない便利処理が見つかるかも。
ちなみに"ApexPages.currentPage()"は開いているページのURLを
取得するためのものです。
この部分は"PageReference"型の変数に変更して使えます。