• User

    URL Rewrite - problema ecommerce con variabili multiple

    Buongiorno a tutti,

    spero possiate darmi una mano con un problema che mi attanaglia da giorni! :gtsad:

    ho un CMS, del quale ho controllo completo in quanto l'ho creato personalmente. Sto cercando di fare un pò di url-rewrite usando htaccess, ma al di la di alcuni semplici passaggi, per altro funzionanti, per le cose un pò più difficili mi sono arenato... mi spiego:

    All'interno del sito ho degli URL del tipo ....articoli.php/idsez=12&id=35 che mi identificano idsez( la sezione) ed id (numero articolo). a questi, in maniera random, si possono aggangiare altre variabili per stabilire la lingua, l'ordinamento per lettera o prezzo o altro, il numero di prodotti per pagina ecc... funziona così perchè una volta passata la variabile con GET viene presa dalla session e mantenuta fino al prossimo cambio. Con l'HTACCESS vorrei fare un po di url rewrite, percui ho scritto questo:

    RewriteEngine On # attiva il sistema di URL rewrite

    RewriteRule ^([A-Za-z0-9-]+)/index-([A-Za-z0-9-]+).html$ /content/dettsez.php?idsez=$2&rwtcat=$1 #regola valida per le categorie di prodotti

    RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)-([0-9]+)-([0-9]+).html$ /content/dettagliart.php?rwtcat=$1&id=$4&idsez=$3&rwtart=$2 valida per i singoli prodotti

    ErrorDocument 404 .../errorpage.php?error=404

    ... questo per adesso fa il rewrite dei soli link che puntano alle sezioni e ai sui articoli, ma nulla a che vedere con le altre variabili che entrano in gioco in maniera casuale in tutto il sito. :arrabbiato:

    Inoltre mi è stato suggerito, visto che il rewrite converte i nuovi indirizzi in quelli vecchi, di fare un 301 dai vecchi ai nuovi, ma mi va in loop...

    Sapete consigliarmi una strada da seguire?

    grazie mille a tutti!


  • User

    Nessun aiuto in merito? anche solo una piccola idea?


  • User Attivo

    Ciao Tommy09, premesso che non ho molte esperienze con URL Rewrite, tuttavia non escudo di aver trovato un piccolo errore a causa dell'assenza della direttiva Last, quindi quando trova la corrispondenza si ferma. Conseguentemente penso che si dovrebbe sostituire con [NC,L]

    Mi sta venendo un dubbio vedendo NC (Not Case sensitive) che possa anche valere per il pattern che hai scritto, allora in tal caso potresti evitare di considerare solo le maiuscole nelle classi [A-Za-z0-9-] riducendosi in [a-z0-9-]

    Non escludo che il 2° RewriteRule sia una ridondanza del precedente precedente perché focalizzando l'attenzione sul 2° gruppo catturato è in grado di riconoscere la stringa index-ciao-123-36.html alla fine dell'URL, che ha la stessa corrispondenza con la precedente RewriteRule.

    Con queste premesse prova:

    RewriteEngine On
    RewriteRule ^/([a-z0-9-]+)/index-([a-z0-9-]+).html$ /content/dettsez.php?idsez=$2&rwtcat=$1 [NC,L]
    # ##### ##### Per ora te lo lascio, al più cancella la seguente: ##### #####
    RewriteRule ^/([a-z0-9-]+)/([a-z0-9-]+)-([0-9]+)-([0-9]+).html$ /content/dettagliart.php?rwtcat=$1&id=$4&idsez=$3&rwtart=$2 [NC,L]
    
    ErrorDocument 404 .../errorpage.php?error=404
    

    Spero che ti sia di aiuto.


  • User

    controllo subito, grazie mille! 🙂