2013-06-21 11 views
8

Stiamo avendo più di 300 pagine nel progetto del mio sito web. Nel tempo abbiamo creato un nuovo server che è sicuro. Questo server è usato specialmente per tutte le immagini nel sito web.URL Riscrivi la regola per IIS per sostituire il percorso della cartella in everypage

: ecco lo scenario:

  • implementazione attuale per le immagini (in aspx, in css)

    http://www.mysite.com/assets/common/image1.jpg 
    
  • a volte in pagina web e CSS è specificato come questo

    ~/assets/common/image1.jpg   
    
  • vorrebbe usare qualcosa come questo.

    http://www.static.mysite.com/common/image1.jpg 
    
  • e per le pagine protette

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

Quindi, come potete vedere tutte le immagini sono provenienti da cartella ~/assets ma ora voglio per creare una regola che sostituisce ~/assets con http://static.mysite.com

Come posso ottenere questo in IIS usando la regola di riscrittura.

ESEMPIO:

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" /> 

Vorrebbe avere regola IIS, quando reperti sopra il codice, sostituirlo con 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" /> 

risposta

8

È necessario creare regola in uscita in IIS. Regola avrà bisogno di seguente:

  1. Presupposto dovrebbe controllare solo i file html (io ho usato di default IsHTML)
  2. In "corrispondenza al contenuto con la" scegliere elementi in cui si desidera controllare i collegamenti
  3. modello è ^(.*)/assets/(.*)
  4. Le proprietà dell'azione sono http://static.mysite.com/ {R: 2}. R: 2 ripete a second() nell'espressione regolare sopra. Puoi controllare ciò di cui hai bisogno dopo aver cliccato sul pulsante "Test pattern".

Bellow semplice regola che si riunisce sopra:

enter image description here

+0

Come configurare questo usando 'web.Config', voglio tutta la cartella' Images', 'css' e' js' nella cartella Contenuto per puntare ad azzurro cdn? – stom

+0

@stom tutte le modifiche precedenti sono visibili in web.config in modo da poterle copiare e incollare –

3

Si può provare questo

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

Sarà reindirizzare whatever/assets/common/image1.jpg-whatever/common/image1.jpg

Aggiornamento:

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

mi piacerebbe che reindirizzasse a http://static.mysite.com/common/image1.jpg sostituendo http://mysite.com/assets/ –

+0

@ patel.milanb scusa per aver chiesto, ma per favore dare l'esempio per facile comprensione – Satpal

+0

vedere le mie modifiche per favore .. –

2

umm qualche modo si può fare in questo modo

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

Scheme è tuoi schemi web http o https ecc aggiudicatrice il tuo nome di dominio web con porta se presente. Quindi qui va completamente l'URL della tua immagine.

Ho usato questo URL del logo per il servizio di report di SSRS e mi sono risolto. Spero che funzionerà per voi.

I commenti e le domande sono benvenuti. Grazie.

Problemi correlati