- Home
- Categorie
- La Community Connect.gt
- News Ufficiali da Connect.gt
- Rewrite Rule
- 
							
							
							
							
							
Rewrite RuleCiao a tutti, Ho impostato le RewriteRule ai link del mio sito, in modo d'avere i link .html Il problema è sorto nel momento in cui ho creato la paginazione di alcuni risultati estratti dal db mysql. Ho un menù con varie sezioni, per il quale ho impostato la seguente regola: RewriteRule ^sez_([^/]+).html /index.php?sezione=$1e fin qui tutto bene.... Per ogni sezione ho creato la paginazione limit 0,10 etc.... il cui link segue la regola: RewriteRule ^cat_([^/]+)/pag_([^/]+).html /index.php?categoria=$1&pg=$2il link è: 
 [php]<a href="cat_".$GET["sezione"]."/pag".$i.".html" title="Vai alla pagina $i">$i</a>[/php]Il punto è che quando clikko sulla pagina successiva, mi allega il nuovo url a quello precedente, per cui se sono già in sezione x premendo pag3 
 scrive:
 http://sito/sezionex/sezionex/pag_3.html/
 e lo stesso se cambio sezione dal menùPerchè? 
 Forse devo mettere una RewriteCond, ma non sò come si fa?Qualche aiutino.... :bho: Grazie... 
 
- 
							
							
							
							
							
prova a creare link assoluti e non relativi. quindi del tipo: 
 xttp://www.tuosito.it/sezione etc etc etc 
 
- 
							
							
							
							
							
@Tymba said: prova a creare link assoluti e non relativi. quindi del tipo: 
 xttp://www.tuosito.it/sezione etc etc etc Okay, grazie Tymba.... 
 funziona perfettamente, ma solo mettendo il link assoluto nel collegamento della pagina.Nel file htaccess deve rimanere com'era (^sez_(...)...) 
 altrimenti dà errore 404 page not found...Perchè? forse c'è qualche reindirizzamento interno del server che non conosco vedi htdocs etc... cmq l'importante è che funzioni!!! Ciao e grazie ancora.... PS/Purtroppo però non sono ancora riuscita a far funzionare l'htaccess in locale sul mio server...dove trovo la configurazione standard del file di apache? Ho girato tutto il web. E cmq è strano perchè dal test sembra funzionare, solo che non riconosce la variabile e non la mostra. Nella directory locale del sito non lo vede proprio...Boh, non ci capisco più niente..... :bho: 
 
- 
							
							
							
							
							
devi mettere l'url assoluto perchè quello relativo è relativo  un url relativo è relativo appunto alla posizione corrente quindi: se dalla pagina xttp://www.miosito.it/sezione/pagina.htm 
 metto un link verso /sezione/pagina.htm essendo un link relativo uscirà
 xttp://www.miosito.it/sezione/sezione/pagina.htmingarbugliato ma spero di essermi spigato. per l'url rewrite in locale ci sto lavorando  serve anche a me e appena trovo la soluzione (se esiste) te la spiffero. serve anche a me e appena trovo la soluzione (se esiste) te la spiffero. 
 
- 
							
							
							
							
							
@Tymba said: devi mettere l'url assoluto perchè quello relativo è relativo  un url relativo è relativo appunto alla posizione corrente quindi: se dalla pagina xttp://www.miosito.it/sezione/pagina.htm 
 metto un link verso /sezione/pagina.htm essendo un link relativo uscirà
 xttp://www.miosito.it/sezione/sezione/pagina.htmingarbugliato ma spero di essermi spigato. per l'url rewrite in locale ci sto lavorando  serve anche a me e appena trovo la soluzione (se esiste) te la spiffero. serve anche a me e appena trovo la soluzione (se esiste) te la spiffero. La differenza tra assoluto e relativo, la conosco, solo mi chiedevo perchè è bastato cambiarlo solo nella pagina e non anche nell'htaccess, credevo dov'essero andare di pari passo (assoluto/assoluto rel/rel) invece, a quanto pare no!? Adesso però ho un problema con la pagina che visualizza i risultati di un modulo di ricerca. La rule visualizza l'indirizzo php 
 index.php?page=search&chiave=$chiave&submit=$submit
 come
 search.htmlIl problema sorge sempre nella paginazione, perchè cambiando pagina non riconosce più le variabili, essendo il modulo in post, ho provato a mettere nell' if anche un || isset($GET["chiave"]) scrivendo tale var nel link della pagina successiva e precedente, ovviamente ho modificato anche htaccess in: 
 RewriteRule ^search([^/]+)-([^/]+)/page_([^/]+).html /index.php?page=$1&chiave=$2&pg=$3ma nulla. 
 Ho provato velocemente perchè avevo un impegno, ora ritento, ma se ti salta all'occhio l'errore, lo accetto volentieri...Grazie per l'aiuto....  
 
- 
							
							
							
							
							
non puoi mettere il link alla pagina così si riesce a ragionare un po' meglio?  
 
- 
							
							
							
							
							
Tymba scusa se non ho risposto prima.... ho risolto aggiungendo all'if del modulo post anche la condizione get in questo modo semplicissimo: if(isset($_GET["chiave"])){ 
 $chiave = $_GET[...];
 }else{
 $chiave = $_POST[...];
 }nell'url: search_$chiave/pag_$pag.html; e nell'htaccess: RewriteRule ^search_([^/]+)/pag_([^/]+).html /index.php?chiave=$1&pg=$2 funziona! Mi è venuto però un dubbio: 
 prima di paginare i risultati avevo già creato le rule per le pagine pertanto ora mi ritrovo ad esempio 2 regole che fanno quasi la stessa cosa:RewriteRule ^sezione_([^/]+).html /index.php?sezione=$1 
 e
 RewriteRule ^sezione_([^/]+)/pag_([^/]+).html /index.php?sezione=$1&pag=$2Il mio problema è che non vorrei che il motore di ricerca vedesse le due pagine generate "sezione_x.html" e "sezione_x/pag_1.html" come doppioni, avendo il medesimo contenuto. Che ne pensi? Devo fare un'unica regola ed aprire la pagina generale impostandola già su pag_1 ? uff.... avrei dovuto pensarci prima... Se potessi risparmiarmi questa modifica ne sarei ben lieta, ma solo se fossi certa di non rischiare l'indicizzazione di doppioni... A presto.  [/quote] [/quote]