2013-06-21 7 views
8

W projekcie mojej strony internetowej znajduje się ponad 300 stron. Z biegiem czasu stworzyliśmy nowy serwer, który jest bezpieczny. Ten serwer jest specjalnie używany do wszystkich obrazów na stronie internetowej.Reguła przepisywania adresu URL dla usług IIS w celu zastąpienia ścieżki folderu na każdej stronie

Tak oto scenariusz:

  • Obecna implementacja do zdjęć (w aspx, w css)

    http://www.mysite.com/assets/common/image1.jpg 
    
  • czasami na stronie internetowej i css jest określony jak ten

    ~/assets/common/image1.jpg   
    
  • chciałbym użyć czegoś takiego.

    http://www.static.mysite.com/common/image1.jpg 
    
  • i bezpiecznych stron

    https://www.static.mysite.com/common/image1.jpg 
    

Więc jak widać wszystkie obrazy pochodzą ~/assets folderu ale teraz chcę utworzyć regułę zastępując ~/assets z http://static.mysite.com

W jaki sposób można to osiągnąć w IIS przy użyciu reguły przepisywania.

PRZYKŁAD:

ASPX

<img src="/assets/common/image1.jpg" id="ImageId1" alt="Image" width="100" height="100" /> 

<img src="http://mysite.com/assets/common/image2.jpg" id="ImageId2" alt="Image" width="100" height="100" /> 

chciałby mieć regułę IIS, gdy znaleziska powyższy kod, należy ją wymienić http://static.mysite.com/common/image1.jpg

<img src="http://static.mysite.com/common/image1.jpg" id="ImageId1" alt="Image" width="100" height="100" /> 


<img src="http://static.mysite.com/common/image2.jpg" id="ImageId2" alt="Image" width="100" height="100" /> 

Odpowiedz

8

Musisz utworzyć regułę wychodzących w IIS. Reguła będzie potrzebował następujących:

  1. Warunek powinien sprawdzić tylko pliki html (użyłem domyślne isHtml)
  2. W „Dopasowanie treści z” wybierz elementy, w którym chcesz sprawdzić linki
  3. wzór ^(.*)/assets/(.*)
  4. Właściwości akcji to http://static.mysite.com/ {R: 2}. R: 2 odwołuje się do drugiego() w wyrażeniu regularnym. Możesz sprawdzić, czego potrzebujesz po kliknięciu przycisku "Testuj wzór".

Bellow prostej zasady, która spełnia wyżej:

enter image description here

+0

Jak skonfigurować to za pomocą 'web.Config', chcę wszystkie foldery' Images', 'css' i' js' wewnątrz folderu zawartość, aby wskazać azure cdn? – stom

+0

@stom wszystkie powyższe zmiany są widoczne w web.config, dzięki czemu możesz je skopiować i wkleić –

3

Można spróbować tej

<rule name="assets redirection" stopProcessing="false"> 
    <match url="^(.*)/(assets)/(.*)" ignoreCase="false" /> 
    <action type="Redirect" url="{R:1}/{R:3}" /> 
</rule> 

nastąpi przekierowanie do whatever/assets/common/image1.jpgwhatever/common/image1.jpg

Aktualizacja:

<rule name="assets redirection" stopProcessing="false"> 
    <match url="^(.*)/(assets)/(.*)" ignoreCase="false" /> 
    <action type="Redirect" url="static.mysite.com/{R:3}" /> 
</rule> 
+0

Chciałbym przekierować na http://static.mysite.com/common/image1.jpg zastępując http://mysite.com/assets/ –

+0

@ patel.milanb przepraszam za pytanie, ale proszę podać przykład dla łatwe zrozumienie – Satpal

+0

zobacz moje edycje proszę .. –

2

umm niektóre jak można zrobić tak jak tego schematu

string imageUrl= Request.Url.Scheme + "://" + Request.Url.Authority + "/Image/logo/Logo.png"; 

jest twoje Schematy internetowej http lub https itp Urząd jest Twoja nazwa domeny internetowej z portem, jeśli istnieje. To tutaj całkowicie zmienia adres URL obrazu.

Użyłem tego adresu URL logo dla usługi raportu ssrs i dostałem się dobrze. Mam nadzieję, że zadziała.

Komentarze i zapytania są mile widziane. Dziękuję.

Powiązane problemy