0

Sitefinity (6.1)、ASP.Net、および 4.0 フレームワークを使用しています。

IIS で既に Web サイトとしてホストされている sitefinty Web サイトがあります。ライセンス上の理由から、Sitefinity で作成した新しいサイトをサブフォルダーと同じ Web サイトに追加したいと考えています。

Web サイト 1 が Foo で、新しい Web サイトが Bar であるとします。

問題は、Bar から相対パスを取得または使用するときに、実際には Foo からパスを取得することです。

そのため、私はハックを使用してURLを機能させています。相対パスを使用してから、Bar を手動で挿入します。

たとえば、ページはホームと呼ばれます。~/home はhttp://www.Foo.com/homeに解決されます。http://www.Foo.com/Bar/homeになるはずなので、手動でバーを追加するだけです。

ASP.Net、Sitefinity、または MVC には、これが私のページであることを示す何らかの方法が必要です。完全な URL を教えてください。

別の Web サイトの Web サイトの URL を解決した経験のある人はいますか?

4

3 に答える 3

1

技術的には、次のような答えを探しています: How do I get the full url of the page I am on in C#

しかし、Sitefinity に関しては、サイト ルートへの「水中」参照が多数あるため、問題が発生することは間違いありません。Administration >> Settings >> Advanced >> Virtual Pathsの下にあるバックエンドのインスタンスを見てください。

したがって、相互汚染に遭遇し、最終的に 2 つのサイトが壊れる可能性があります。

私はライセンスをかわすつもりはありませんが、いくつかの提案があります。

  • 無制限のサブドメインを許可します。
  • 'bar' を IIS アプリケーションとしてインストールすると、~/正しく解決されます。
  • Administration >> Settings >> Advanced >> System >> SiteURL settings を変更します。

その最後のオプションを使用すると、Site-root (iis/asp.net レベルではなく、sitefinity レベル) を設定できます。この時点で、Sitefinity API を介して適切な URL を取得できます。page.GetFullUrl();

于 2013-09-26T17:44:56.780 に答える
0

string url = node.Url.Replace("~/", "./");ページがルート レベルにない場合、これは機能しません。たとえば、「xxxx://www.foo.com/sitename/sitefolder/sitepage」という URL の場合、「xxxx:/」ではなく「xxxx://www.foo.com/sitename/sitefolder/home」が返されます。 /www.foo.com/sitename/home"

于 2015-09-28T08:47:45.160 に答える