私はパスを持つローカルアプリケーションを持っています:
http://localhost:950/m/pages/Searchresults.aspx?search=knife&filter=kitchen
しかし、これが統合環境またはおそらく本番環境に行くと、次のようになります
http://www.someshopping.com/m/pages/SearchResults.aspx?search=knife&filter=kitchen
いくつかの場合、私はちょうど渡す必要があります:
www.someshopping.com
私のXSLTファイルに、私がこれを使用している機能の1つで:
string currentURL = HttpContext.Current.Request.Url.Host;
これにより、ローカル環境で「localhost」が返されます。同じコードで返されますか:
www.someshopping.com実稼働中(必要ありませんhttp://)
チャンスを取りたくないだけです。だから、この愚かな質問をした。
はい、ブラウザwww.someshopping.comに入力したURLで、URL書き換えを使用していない限り
string currentURL = HttpContext.Current.Request.Url.Host;
戻ります www.someshopping.com
ローカルデバッグ環境と運用環境の違いに注意してください
Host
プロパティは、サイトにアクセスするときに使用したドメイン名を返します。だから、あなたの開発環境では、あなたが要求しているので
http://localhost:950/m/pages/Searchresults.aspx?search=knife&filter=kitchen
localhost
を返しています。次のようにURLを分割できます。
Protocol: http
Host: localhost
Port: 950
PathAndQuery: /m/pages/SearchResults.aspx?search=knight&filter=kitchen
これを試して:
string callbackurl = Request.Url.Host != "localhost"
? Request.Url.Host : Request.Url.Authority;
これは、ローカル環境と本番環境の両方で機能します。ローカルはポートnoでurlを使用するため、Url.Hostを使用することはできません。