PDA

View Full Version : [Apache - PHP] Il Mod Rewrite punta solo ad una pagina ???


race2
05-07-2011, 07:39
Salve,
vorrei adottare nel mio sito il MOD REWRITE di Apache, ho fatto dei test ma in tutti gli esempi vedo che nel file .htaccess tutte le pagine e variabili inviate, puntano ad una sola pagina di destinazione es:


RewriteEngine On
RewriteRule ^(.+)/(.+).html index.php?id=$1 [L]


questo se sono nella index.php, ma se sono nella pagina catalogo.php o in altre ???

Non posso fare come vedi sotto, ho provato e non funziona !!!


RewriteEngine On
RewriteRule ^(.+)/(.+).html index.php [L]
RewriteRule ^(.+)/(.+).html catalogo.php?id=$1 [L]
RewriteRule ^(.+)/(.+).html photogallery.php?id=$1 [L]
RewriteRule ^(.+)/(.+).html contatti.php [L]


Ho visto in alcuni esempi che si deve aggiungere una inclusione della pagina da richiamare sulla index.php e passare come variabile il nome della pagina...

Caspita !!! Ma non esiste una soluzione meno arrangiata ???
Non possiamo compilare il file .htaccess in un modo che accetta tutte le pagine di destinazione ???

SerMagnus
05-07-2011, 08:23
beh è normale che non funziona.
mettiti nei panni di apache, come fa a capire quando richiamare i diversi file php?

per poterlo fare devi giocare con le reg-ex e determinate keyword o valori della querystring

race2
05-07-2011, 08:26
beh è normale che non funziona.
mettiti nei panni di apache, come fa a capire quando richiamare i diversi file php?

per poterlo fare devi giocare con le reg-ex e determinate keyword o valori della querystring

mica avresti un link di esempio ??

E' la prima volta che faccio questa cosa.

SerMagnus
05-07-2011, 13:14
basta che fai una rapita ricerca su google, trovi materiale con la pala

race2
05-07-2011, 14:40
scusa, non ci pensavo ma è più ovvio del previsto:

RewriteEngine On
RewriteRule ^(.+)/index.html index.php [L]
RewriteRule ^(.+)/catalogo.html catalogo.php?id=$1 [L]
RewriteRule ^(.+)/contatti.html contatti.php [L]

Funziona, secondo te è sbagliato ???

kevinpirola
05-07-2011, 15:44
così dovrebbe funzionare

race2
05-07-2011, 16:22
Scusa, cosi è più corretto:


RewriteEngine On
RewriteRule ^index.html index.php [L]
RewriteRule ^(.+)/catalogo.html catalogo.php?id=$1 [L]
RewriteRule ^contatti.html contatti.php [L]

Ok, grazie, funziona perfettamente!!

race2
06-07-2011, 12:03
Scusate,
ma utilizzare lo "/" oppure il "-" cambia qualcosa per i motori in fatto di indicizzazione ??

Es: http://www.mio-sito.com/catalogo/pantaloni/bermuda/71/

Non è che con lo "/" vede come se fossero directory e non indicizza quelle voci come keywords ??

black_wizard
06-07-2011, 18:43
l'indicizzazione degli url legge tutto l'url.
Non so se sia meglio gli "/" oppure il "-" ma credo sia ininfluente, l'importante è inserire nell'url come in questo caso delle parole attinenti alla pagina che si vede.