• User

    Come fare il redirect di url contenenti sub directory

    Ciao a tutti,
    il titolo non è dei migliori, tuttavia volevo cercare di risolvere il seguente problema.

    Ho attivato, attraverso il file .htaccess e il PHP, la riscrittura delle URL in modo SEF. Innanzitutto, per farvi capire meglio, vi posto il codice del file .htaccess:

    
    ###################
    RewriteEngine On
    RewriteBase / 
    RewriteCond %{HTTP_HOST} store.dominio.it
    RewriteCond %{REQUEST_URI} !store/
    RewriteRule ^(.*)$ /store/
    RewriteRule ^(.+)/(.+)/$ /store/ 
    ###################
    
    
    ###################
    RewriteEngine On
    RewriteRule ^store/(.+)-([0-9]+)-([0-9]+)$ store/product_details.php?idp=$2&cat=$3
    RewriteRule ^store/lista-prodotti$ store/lista-alfabetica.php
    RewriteRule ^store/carrello$ store/cart.php
    RewriteRule ^store/(.+)-([0-9]+)$ store/category_list.php?cat=$2 
    ###################
    
    
    ###############
    RewriteEngine On
    RewriteBase /
    RewriteRule ^store/sitemap.xml$ store/sitemap.php [L,QSA]
    ###############
    
    
    
    

    Il mio problema riguarda alcuni url rilevati da Google in strumenti per webmaster, che mi riporta degli url con errore 404, del tipo:

    store.dominio.it/XXXcaratteri_alfanumerici_che_creano_problemi/nome_prodotto-23-54

    Ora, a parte che non riesco a capire come google faccia a scansionare queste pagine con ***XXXcaratteri_alfanumerici_che_creano_problemi ***(dovrei analizzare meglio il codice), vorrei fare in modo che quando gli utenti visitano una pagina di questo tipo, anzichè visualizzare una pagina strampalata senza grafica (credo sia dovuto al fatto che quella stringa crea conflitto con tutti i percorsi relativi dei css, ecc.) venisse effettuato un redirect alla pagina nome_prodotto-23-54.

    Qualcuno sa quale regola applicare al mio .htaccess per fare in modo di bypassare il problema?

    Ringrazio tutti in anticipo.


  • Admin

    Ciao andriy84,

    innanzi tutto da webmaster tool cliccando sull'URL strampalata dovresti vedere da dove viene reperita quella URL.

    Una volta fatto questo ti basta usare una regex che combaci con (caratteri|strampalati|che|vuoi)/nome_prodotto-(VAR)-(VAR)


  • User

    Ciao Juanin, intanto ti ringrazio per la tua risposta.

    Le url "strampalate", sono proprio le url di origine delle pagine che generano l'errore 404, cioè quelle visibili negli errori rilevati da google .

    Per quanto riguarda la regex da utilizzare su htaccess, ho provato ad aggiungere questa regola, ma non funziona:

    
    ###################
    RewriteEngine On
    **RewriteRule ^store/(.+)/(.+)-([0-9]+)-([0-9]+)$ store/product_details.php?idp=$2&cat=$3**
    ###################
    
    

    Ma pare non funzionare...credo di sbagliare la regex, ma cosa sbaglio???

    PS: Nella parte /(.+)/ possono esserci: caratteri, numeri, simboli (. - /)


  • Admin

    Prova con .*