|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Aug 2008
Messaggi: 210
|
[Apache|PHP] Problema con mod rewrite
Salve.
Ho un problema con il mod rewrite di apache che non riesco proprio a capire e quindi a risolvere. Dunque, ho una regola di riscrittura: Codice:
RewriteRule ^(.*)_(.*)_(.*).html$ index.php?c=$1&idcol=$2&lang=$3 [L] Infatti $_GET['c'] andrà a valere "visualizzatipi_1", $_GET['idcol'] sarà nullo e $_GET['lang'] sarà "it". Perchè la variabile di parametro "c" comprende più del dovuto?? Dov'è che sbaglio? Spero che ci sia qualcuno che possa aiutarmi, sto impazzendo Grazie mille |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
la wildcard . (punto) fa il match anche con l'underscore.
prova con ^([^_]*)_([^_]*)_([^_]*).html oppure una un matcher non "greedy" |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Aug 2008
Messaggi: 210
|
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Quote:
Codice:
$ echo visualizzatipi_1_it.html | perl -npe 's/^(.*)_(.*)_(.*).html$/index.php? c=$1&idcol=$2&lang=$3/' index.php?c=visualizzatipi&idcol=1&lang=it RewriteLog /tmp/quelchevuoi RewriteLogLevel 3 e posta l'output di una chiamata |
|
|
|
|
|
|
#5 | |
|
Member
Iscritto dal: Aug 2008
Messaggi: 210
|
Quote:
|
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Quote:
Se hai accesso solo all'htaccess non puoi abilitarli |
|
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Aug 2008
Messaggi: 210
|
Ma io sto lavorando in locale, quindi in qualche modo potrei modificare questa impostazione no? Solo che non so come
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Sep 2005
Messaggi: 1400
|
nel file di configurazione di apache
|
|
|
|
|
|
#9 |
|
Member
Iscritto dal: Aug 2008
Messaggi: 210
|
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
|
|
|
|
|
|
#11 |
|
Member
Iscritto dal: Aug 2008
Messaggi: 210
|
Non intendevo questo, il file di configurazione so dov'è, solo che non so in quale punto del file devo inserire quel codice.
|
|
|
|
|
|
#12 |
|
Member
Iscritto dal: Aug 2008
Messaggi: 210
|
Ho provato con un'altra riscrittura, diversa dal problema precedente:
RewriteRule ^(.*).html$ index.php?c=$1 [L] Il camuffamento dei link funziona bene, nel senso che se ad esempio uso login.html, si viene correttamente reindirizzati a index.php?c=login MA: quando accedo alla mia directory (es. http://localhost/myproject), viene effettuata una stranissima richiesta ad index.php con parametro "c" uguale a "index". Ancora più strano poichè nella mia directory è presente anche index.html, che dovrebbe essere letta per prima. Insomma, è così tanto difficile usare questo maledetto mod rewrite? Io non capisco come risolvere questi problemi... |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
quella che vedi è una richiesta generata da mod_autoindex che per listare il contenuto di una directory crea una subrequest per index.html che viene poi intercettata dalla regola di rewrite che hai impostato.
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
|
|
|
|
|
|
#15 |
|
Member
Iscritto dal: Aug 2008
Messaggi: 210
|
Grazie ho risolto, il problema è che prima di quelle regole, ce n'erano altre più generiche e quindi venivano considerate quelle e basta
|
|
|
|
|
|
#16 |
|
Member
Iscritto dal: Aug 2008
Messaggi: 210
|
Raga vorrei un consiglio. E' la prima volta che uso in modo massiccio il mod rewrite, e so che serve maggiormente per avere più successo nei motori di ricerca. Quindi è inutile riscrivere i link accessibili nelle pagine che richiedono il login giusto?? Dato che un motore di ricerca non può avere accesso... vorrei una conferma ^^
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:42.




















