• User

    Redirect 301 url rewrite maps windows

    Scusate ma ho scritto in una discussione avviata e purtroppo non ho avuto risposta, perdonatemi scrivo un post qui magari qualcuno esperto può leggere, penso che questo riguardi tanti che purtroppo hanno server windows. Grazie e buon anno

    [INDENT] Vorrei effettuare un redirect 301 di alcune pagine da htm a html, server aruba, ho provato più volte a creare e modificare il file web.config seguendo delle guide che suggerscono di creare una mappa url rewrite e poi il file web.config
    Step 1: Create the rewrite mapping file

    This is a text file, saved with the name rewritemaps.config, here?s the example format:
    <rewriteMaps>
    <rewriteMap name="Redirects">
    <add key="/oldurl" value="/newurl" />
    <add key="/oldurl2" value="/newurl2" />
    </rewriteMap>
    </rewriteMaps>

    Step 2: Copy to IIS

    Copy the rewritemaps.config file into the same directory as your web.config (on IIS)
    Step 3: Add a reference to web.config

    Add a reference to the rewritemaps.config file in your web.config file eg:
    <configuration>
    <system.webServer>
    <rewrite>
    <rewriteMaps configSource="rewritemaps.config"><rewriteMaps>
    <rules>
    <rule name="Redirect rule1 for Redirects">
    <match url=".*" />
    <conditions>
    <add input="{Redirects:{REQUEST_URI}}" pattern="(.+)" />
    </conditions>
    <action type="Redirect" url="{C:1}" appendQueryString="false" />
    </rule>
    </rules>
    </rewrite>
    </system.webServer>
    </configuration>
    Step 4: Load into IIS

    La risposta che ho inserendo index.htm verso index.html è errore 500 che sono andato a vedere qua
    sembra che sia un problema di permessi

    support . microsoft . com / en-us /kb /942055

    ApplicationHost.config and Web.config files so that IIS_IUSRS has the Read permission for those files
    Avete suggerimenti?
    Grazie
    [/INDENT]


  • Moderatore

    Ciao fiocco,

    Che versione di IIS stai usando?
    Da che pagina della documentazione di MS proviene il testo hai incollato qui?

    @fiocco said:

    [INDENT]La risposta che ho inserendo index.htm verso index.html è errore 500 che sono andato a vedere qua
    sembra che sia un problema di permessi

    support . microsoft . com / en-us /kb /942055

    ApplicationHost.config and Web.config files so that IIS_IUSRS has the Read permission for those files
    Avete suggerimenti?
    Grazie
    [/INDENT]

    Mettendo i permessi sul file per l'utente IIS_IUSRS come suggerito non risolvi?


  • User

    @Federico Sasso said:

    Ciao fiocco,

    Che versione di IIS stai usando?
    Da che pagina della documentazione di MS proviene il testo hai incollato qui?

    Mettendo i permessi sul file per l'utente IIS_IUSRS come suggerito non risolvi?

    Ciao Fderico intanto grazie per la risposta, il codice l'ho preso da qui xen.com.au/using-rewrite-maps-iis-301-redirects/
    Il server è aruba il quale mi ha risposto che ho tutti i permessi, ma mi da errore 500.

    Uso ASP.NET
    Framework .NET (ASP.net)
    Seleziona la versione in base all?ambiente di sviluppo locale 4.0/4.5
    [CENTER]
    [/CENTER]

             **Modalità Pipeline**                 
                 La modalità Classica si comporta come la versione precedente di IIS.
    

    La modalità Integrata processa tutte le richieste con un unico processo grazie all'integrazione con Asp.Net, nativa in IIS 8.5.
    modalità Classica
    [CENTER]

    [/CENTER]


  • Moderatore

    Come sei arrivato a dedurre fosse un problemi di diritti d'accesso? Hai forse abilitato gli errori espliciti? Se sì, che messaggio d'errore hai ottenuto di preciso?

    Mettendo la mappatura direttamente nel web.config invece che in un file esterno, funziona?


  • User

    @Federico Sasso said:

    Come sei arrivato a dedurre fosse un problemi di diritti d'accesso? Hai forse abilitato gli errori espliciti? Se sì, che messaggio d'errore hai ottenuto di preciso?

    Mettendo la mappatura direttamente nel web.config invece che in un file esterno, funziona?

    L'errore era 500 e l'ho dedotto dalla risposta del server.

    La mappatura esterna serve appunto per avere a disposizione una sezione dove poter iserire 900 pagine redirect
    metterle nel web.config credo che non darebbe buoni risultati


  • Moderatore

    @fiocco said:

    L'errore era 500 e l'ho dedotto dalla risposta del server.

    La mappatura esterna serve appunto per avere a disposizione una sezione dove poter iserire 900 pagine redirect
    metterle nel web.config credo che non darebbe buoni risultati
    Non posso aiutarti se non rispondi alle domande:

    500 è un generico errore lato server, tipicamente un crash. Potrebbe anche essere causato da problemi di diritto d'accesso al file esterno, oppure potrebbe essere causato da qualsiasi cosa.
    Cosa ti porta a dedurre sia un problema di diritti d'accesso a partire dall'errore 500 rilevato? Lo hai letto da un log, o un messaggio d'errore? Quale?

    Mi è chiaro perché preferisci un file esterno per la mappatura, chiedo se funziona senza file esterno per poter escludere altre cause.
    Hai fatto un test con 2-3 redirect con mappatura direttamente nel web.config per vedere se funziona? Funziona?


  • User

    Scusa mi sembrava di averl già scritto, mi era sfuggito
    la risposta alla mia domanda sull'errore 500 data da aruba è la seguente

    Gentile Cliente,
    non forniamo specifico codice a riguardo, non si tratta comunque di un problema di permessi ma relativo a rintracciare il corretto codice per il caso specifico o similari.

    Lato server non vi è alcun tipo di problema o modifica da apportare.

    No non ho fatto la prova, quale codice mi consigli di iserire per provare?
    considera un redirect 301 da index.htm a index.html


  • User

    Non funziona senza mappatura, probabile che sbagli codice, quale potrebbe essere il codice giusto per fare un redirect index.htm index.html ?


  • Moderatore

    Ciao fiocco,

    @fiocco said:

    Non funziona senza mappatura, probabile che sbagli codice, quale potrebbe essere il codice giusto per fare un redirect index.htm index.html ?
    La mappatura serve, ti ho consigliato di provarla non da file esterno e testare direttamente con web.config
    L'hai fatto?
    Se sì, che codice hai usato?

    Non ho mai dovuto farlo con gli strumenti nativi di ASP.NET (uso sistemi diversi); per provare userei il codice nello stesso articolo da te indicato, e alla documentazione ufficiale MS nello stessa link-ata (http://www.iis.net/learn/extensions/url-rewrite-module/using-rewrite-maps-in-url-rewrite-module)

    <configuration>
        <system.webServer>
            <rewrite>
                <rewriteMaps>
                    <rewriteMap name="***Redirects***">
                        **<add key="/index.html" value="/index.html" />
    **                </rewriteMap>
                </rewriteMaps>
    
                <rules>
                    <rule name="Redirect rule1 for Redirects">
                    <match url=".*" />
                    <conditions>
                        <add input="{***Redirects***:{REQUEST_URI}}" pattern="(.+)" />
                    </conditions>
                    <action type="Redirect" url="{C:1}" appendQueryString="false" />
                    </rule>
                </rules>
            </rewrite>
    
            ...
    

    L'hai provato?
    Cosa vuole dire "non funziona"? è ignorato, oppure genera un messaggio d'errore?
    Dove, e quale messaggio d'errore?


  • User

    Adesso ignorato


  • Moderatore

    @fiocco said:

    Adesso ignorato
    Se fai il test su pagine con estensione .aspx funziona?


  • User

    Non ho pagine aspx, oltretutto ho riscontrato il problema che modificando il file web.config i database collegati al sito non sono più raggiungbili, a questo punto le cose si complicano ancora di più. Non vorrei crearti ulteriore disturbo


  • Moderatore

    @fiocco said:

    Non ho pagine aspx
    Sì sì,anche su pagine inesistenti: l'ipotesi è che i file .htm/.html sono siano gestiti da ASP.NET; te l'ho chiesto per escludere una possibile causa (era comune con le versioni di IIS precedenti).

    @fiocco said:

    ho riscontrato il problema che modificando il file web.config i database collegati al sito non sono più raggiungbili, a questo punto le cose si complicano ancora di più.
    Ripristina subito la versione precedente.
    Cerca sempre di sperimentare prima con la copia locale sulla macchina di sviluppo, non direttamente con il sito live.

    Ciao


  • User

    Si lo avevo fatto subito, per fortuna plugin di wordpress mi avverte sempre se qualcosa non va, pensa ci sono 8 database..
    comunque sono al punto di partenza, sono circa 900 pagine e al momento hanno il redirect metatag ma google se ne sbatte / da giugno) ecco perchè cerco un altro metodo
    ho anche il meta canonical ma niente da fare, il rischio è di perdere indicizzazione per un sito che ho onlie dal 2000


  • User

    Entrando con il file manager di aruba ho notato che ci sono due cartelle
    Una App Data con all'interno un altro web.config così scritto
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
    <system.webServer>
    <handlers accessPolicy="None" />
    </system.webServer>
    </configuration>
    e l'altra aspnet client con dentro altra cartella system web con altre due cartelle datate ma vuote.
    Chiedo se secondo te possa essere in conflitto con il web.config da me inserito nel file manager


  • Moderatore

    @fiocco said:

    Chiedo se secondo te possa essere in conflitto con il web.config da me inserito nel file manager
    Influiscono solo sulle cartelle in cui si trovano


  • User

    Finalmente aruba mi ha risposto in modo più esaustivo

    La risposta è stata questa
    Gentile Cliente,
    la gestione del re-indirizzamento deve avvenire tramite web.config pubblicato nella cartella del dominio; lato server non è necessario fare alcun intervento.
    In questo caso, ad esempio, è sufficiente specificare:

    <?xml version="1.0"?>
    <configuration>
    <location path="index.htm">
    <system.webServer>
    <httpRedirect enabled="true" destination=" http : // www . xxx . it/index.html" httpResponseStatus="Permanent" />
    </system.webServer>
    </location>
    </configuration>
    come web.config.
    Tutte le richieste alla pagina index.htm saranno reindirizzate verso la pagina index.html
    Non vi sono da effettuare altri interventi.

    **Ho provato e funziona sulla index.htm verso index.html (permanent sarebbe il 301)
    Chiaramente per me resta il problema è che deve fare redirect 301 per moltissime pagine, il loro suggerimento non so se mi permetterà di farlo.
    Avete altri consigli?
    Grazie
    **