Supporto » Sviluppare con WordPress » WordPress ignora regola di rewrite

  • Ciao

    ecco la situazione:
    nel file functions.php del tema child ci sono queste regole di rewrite (regolarmente attivate):

    add_rewrite_rule( '(vendita|affitto)\/(residenziale|negozio|attivita|ufficio)($|\/.*)', 'index.php?pagename=$matches[1]-$matches[2]', 'top' ) ;	// dedicated search pages for SEO
    add_rewrite_rule( '(vendita|affitto)\/..*|(cerca|ricerca|ricerche|search-property)($|\/.*)', 'index.php?pagename=ricerca', 'top' ) ;			// default search page

    quando utilizzo il link https://custaging.caseuniche.it/vendita/attivita/
    mi aspetto che la prima regola (quella sopra) mi rimandi alla pagina
    https://custaging.caseuniche.it/index.php?pagename=vendita-attivita

    invece WordPress ignora la prima regola (sopra) e applica la seconda (sotto)
    e mi manda qui https://custaging.caseuniche.it/index.php?pagename=ricerca la pagina di ricerca di default

    Cosa sbaglio ?

    Io vorrei andare alla pagina dedicata della prima regola (sopra) cho contiene info utili per la SEO
    anche se la pagina di ricerca di default legge la $_SERVER['REQUEST_URI'] e esegue comunque la ricerca.

    Mi potete aiutare ?

    Alberto

    La pagina su cui ho bisogno di aiuto: [devi essere connesso per vedere il link]

Stai visualizzando 1 risposte (di 1 totali)
  • Chi ha creato la discussione Alberto

    (@caseuniche)

    Ciao a tutti,

    ho trovato una soluzione, ma non ho capito perchè funziona:
    se sostituisco questo codice:

    add_rewrite_rule( '(vendita|affitto)\/(residenziale|negozio|attivita|ufficio)($|\/.*)', 'index.php?pagename=$matches[1]-$matches[2]', 'top' ) ;	// dedicated search pages for SEO
    add_rewrite_rule( '(vendita|affitto)\/..*|(cerca|ricerca|ricerche|search-property)($|\/.*)', 'index.php?pagename=ricerca', 'top' ) ;	// default search page

    con questo:

    add_rewrite_rule( 'vendita/residenziale$', 'index.php?pagename=vendita-residenziale', 'top' ) ;	// dedicated search pages for SEO
    add_rewrite_rule( 'vendita/negozio$', 'index.php?pagename=vendita-negozio', 'top' ) ;			// dedicated search pages for SEO
    add_rewrite_rule( 'vendita/attivita$', 'index.php?pagename=vendita-attivita', 'top' ) ;			// dedicated search pages for SEO
    add_rewrite_rule( 'vendita/ufficio$', 'index.php?pagename=vendita-ufficio', 'top' ) ;			// dedicated search pages for SEO
    add_rewrite_rule( 'affitto/residenziale$', 'index.php?pagename=affitto-residenziale', 'top' ) ;	// dedicated search pages for SEO
    add_rewrite_rule( 'affitto/negozio$', 'index.php?pagename=affitto-negozio', 'top' ) ;			// dedicated search pages for SEO
    add_rewrite_rule( 'affitto/attivita$', 'index.php?pagename=affitto-attivita', 'top' ) ;			// dedicated search pages for SEO
    add_rewrite_rule( 'affitto/ufficio$', 'index.php?pagename=affitto-ufficio', 'top' ) ;			// dedicated search pages for SEO

    tutto funziona bene.

    Ma perchè la regola precedente
    add_rewrite_rule( '(vendita|affitto)\/(residenziale|negozio|attivita|ufficio)($|\/.*)', 'index.php?pagename=$matches[1]-$matches[2]', 'top' ) ; // dedicated search pages for SEO
    non è la soluzione corretta ?

    Se qualcuno riesce a spegracelo … impariamo tutti qualcosa 🙂 (almeno io 😉 )

    Ciao,
    Alberto

Stai visualizzando 1 risposte (di 1 totali)
  • Devi essere collegato per rispondere a questo topic.