• User Attivo

    Link assoluti e redirect

    Salve,
    sto pensando di usare il modrewrite per un sito che ovviamente non è stato pensato per quello ai suoi tempi, mi trovo di fronte al problema dei link relativi e le soluzioni sarebbero o aggiungere ad ogni pagina nell' head <base href="http://www.miosito.it/> oppure fare tutti i link assoluti (ma sarebbe una tragedia visto che in locale e sul server remoto ho ovviamente diversi percorsi),

    Quindi mi chiedevo se si potesse creare una sorta di base href="" che però si applica all'htaccess in modo da cambiare una sola cosa per tutte le pagine.

    Inoltre ora che ho "trasformato le pagine" (già indicizzate su google) da pagina.php?cat=categoria&id=1 a pagina/categoria/id come faccio a fare il redirect permanente verso la pagina statica? Lo devo scrivere nel file htaccess giusto? Ma non ho capito come fare perchè ad esempio spesso la variabile cat (pagina.php?cat=qualcosascrittonon è sempre uguale a quella che verrà mostrata nello statico (categoria/qualcosa-scritto/ ) come si fa?

    In casi drastici cosa si deve fare?


  • User Attivo

    Per favore qualcuno mi risponde alla prima domanda?

    Riguardo alla seconda :

    fare questo è ok perchè è semplice:

    redirect permanent /serietv.php /serietv/

    ma se devo reindirizzare una pagina tipo /view.php?serie=nomeserie&id=numid verso /serietv/nomeserie/id/titolovideo.html come posso fare?? cioè il "nomeserie" non è uguale a quello che viene passato via get perchè quello statico ha i trattini al posto dello spazio e nello stesso momento il titolo video non viene proprio passato via get dimanico.

    Quindi che posso fare? Sarei pure disposto in modo drastico a cancellare tutta la cache su google e far reindirizzare solo le pagine nuove (quindi tra mesi :()però come faccio ad evitare che le dimaniche non vengano più considerate??


  • User Attivo

    Siccome sono impossibilitato a fare dei redirect esatti cosa succede se io faccio il redirect di parecchie pagine "vecchie" verso la home page o altra pagina? Succede che avrò 10000 pagine tutte multiple?
    E allora cosa posso fare? Magari se io dico che la pagina è stata rimossa quelle nuove verranno aggiunte? (ovviamente non a sostituire)


  • User Attivo

    omunque è una cosa davvero stressante perchè se io ho delle cose impostate come (esempio)

    RewriteRule video/serie/categoria/(.*) view.php?id=$

    RewriteCond %{QUERY_STRING} ^id=(.*)$
    RewriteRule ^view.php $ http://www.miosito.com/ [R=301,L]

    Mi succede che qualsiasi cosa passi per quella pagina view.php (cioè anche le pagine nuove della prima regola) vengono influenzate tutte dall'ultima regola di redirect e punta tutto a miosito.com image e mi ci sto impazzendo!

    Lasciarlo così è un suicidio perchè è assicurato che con pagine doppie entrambi funzionanti e con lo stesso contenuto vuol dire ban da google al 100%, sarei tentato a cancellare l'intero sito da google e poi reinserirlo...tanto già io sono io dei tanti che è andato alla 50° pagina dei risultati da 2 settimane(sta succedendo a parecchie persone image) Page rank non ne ho


  • Super User

    ciao,
    per il base href io uso una soluzione del genere:
    [php]
    <?php
    define('THISSITE', 'http://www.domain.tld');
    .....
    echo '<a href="' . THISSITE . '">....</a>';
    ?>
    [/php]
    sennò, per fare ancora prima, sul computer dove tengo i siti metto virtualhost locali (modificando il file hosts per far puntare un dns remoto in locale) 🙂


  • Super User

    per il redirect 301:

    considera questi url
    /lost/xxx.html
    serietv.php?serie=lost&altro=xxx

    il modo più veloce è rinominare serietv.php in serietv1.php
    crei un nuovo serietv.php e gli metti come unico contenuto
    [php]
    <?php
    header("HTTP/1.1 301 Moved Permanently");
    header('Location: /' . $_GET['serie'] . '/' . $_GET['altro'] . '.html');
    ?>
    [/php]

    nell'htaccess fai puntare gli url a serietv1.php , ovviamente 🙂
    è tutto
    chiaramente se usi delle trasformazioni al nome della serie (sopra hai scritto che trasformi spazi in -) ti conviene fare una funzione, metterla su un file separato, includerla dove serve e applicarla (sopratutto a serietv1.php) 😉


  • User Attivo

    Credo che tu mi abbia salvato la vita:o grazie!! non ci avevo pensato a questo!(funziona!!)
    Però a questo punto devo cambiare anche i nomi della pagine altrimenti tutte le pagine che passano per un pagina che viene indicata nell'htaccess per fare redirect 301 influenza anche le nuove quindi si crea un ciclo infinito (infatti le pagine non si aprono)

    Confermi?


  • User Attivo

    OK! Ci sono riuscito alla grande.

    Ora però mi rimane un dubbio io ho dovuto creare (apparte il redirect 301.) un htaccess di diverse righe per riscrivere gli url da statici a dinamici come mai invece che con questo wordpress fa tutto??

    BEGIN WordPress

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /wordpress/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /wordpress/index.php
    </IfModule>

    END WordPress

    ❌bho:


  • Super User

    perchè wordpress fa tutto lato php e non usa "a fondo" mod_rewrite
    riscrivi "qualsiasi cosa" verso "wordpress/index.php"

    poi ci pensa wp a vedere che url è, e invia la pagina relativa al browser 😉

    è un sistema che si usa quando gli url devono essere personalizzabili da un pannello di controllo, per esempio pure vbSEO usa lo stesso sistema


  • User Attivo

    @osvi said:

    perchè wordpress fa tutto lato php e non usa "a fondo" mod_rewrite
    riscrivi "qualsiasi cosa" verso "wordpress/index.php"

    poi ci pensa wp a vedere che url è, e invia la pagina relativa al browser 😉

    è un sistema che si usa quando gli url devono essere personalizzabili da un pannello di controllo, per esempio pure vbSEO usa lo stesso sistema

    Non ho capito come fa esattamente, però diciamo che ho capito 😉

    Comunque grazie ancora davvero ho risolto tutto :vaiii: