[PHP] url friends

  • Creatore Discussione Creatore Discussione avatar
  • Data di inizio Data di inizio
Stato
Chiusa ad ulteriori risposte.

avatar

Utente Attivo
3 Gen 2017
97
0
6
54
buon giorno , il mio sito funziona con questa variabile url miosito/?do=hublist&id=nomedellapagina e la vorrei trasformare in miosito/test/nomedellapagina , provato a modificare la index e e non funziona niente , con il file htaccess non trovo nessun modo per la modifica , qualcuno mi puo aiutare ? Grazie in anticipo
 
Utilizzi un qualche router?
?do=x&id=nome cosa sono?
Sono forse "Controller" e "Model" oppure sono variabili tue?
 
sono variabili della index.php , ho provato con htaccess questo RewriteEngine on RewriteRule ^/([A-Za-z0-9]+)\.html /?do=hublist&id=$1 ( ne ho provate tante ) e la pagina spunta sempre Pagina 404
 
che centra il router ? io parlo del mio sito web , facendo analizzare il mio sito sui seo dicono che che non ci sono url friends
perché il sito funziona con il ?do= e lo vorrei mettere a hubs senza il ?do= esempio : miosito/?do=hublist&id= a miosito/hubs/
 
} else if ((isset ($_GET ["do"])) and ($_GET ["do"] === "hublist")) { // do=hublist

<a href=\"/?do=hublist&amp;id=" . $row ["id"] . "\">" ecco 2 righe della mia index.php
 
che centra il router ?
Capisco....
Il router è solitamente una "CLASSE" (termine non proprio corretto) atta alla gestione delle URL dando come risultato l'esecuzione di un CONTROLLER/METODO/PARAMETRI corretto/i.
Quindi possiamo dire con assoluta certezza che il ROUTER PROVVEDE AL CORRETTO FUNZIONAMENTO DELL'APPLICAZIONE.

Al di là di queste sciocchezze, se hai una logica ben precisa il file htaccess dovrebbe prevedere solo questo:
Codice:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

Se poi hai parametri custom, in $_GET prova così:
Codice:
RewriteRule ^/([^/]*)/([^/]*)$ index.php?do=$1&id=$2 [nc]
Per ogni tipologia di parametri devi scrivere nel file htaccess, il router invece fa risparmiare questo onere...
 
Marcus ho inserito quello che hai messo , niente la pagina non cambia resta sempre con il ?do=
 
ma scusa.... tu devi fare il rewrite giusto?
quindi l'url sul tag a deve essere modificato:
Codice:
<!-- ERRATO -->
<a href=\"/?do=hublist&amp;id=" . $row ["id"] . "\">"

<!--NUOVO CORRETTO -->
<a href="/hublist/" . $row ["id"] . "\">"
Altrimenti devi fare un redirect dalla index togliendo i parametri....
 
} else if ((isset ($_GET ["do"])) and ($_GET ["do"] === "hublist")) { // do=hublist

if ((isset ($_GET ["id"])) and ($_GET ["id"] !== "")) { // specific id
 
scusami aggiungendo le stringhe nel file htaccess devo modificare anche la index ?
 
@avatar
Te l'ho già chiesto in altre discussioni! Quando posti del codice devi usare gli appositi TAG!
Correggi i tuoi post per favore!
Grazie
 
Max buon giorno ma non so nemmeno cosa sono i tag e non lo so come sistemarli , scusami
 
Marcus diciamo che il redirect funziona , ma tutti gli 847 indirizzi portano nella stessa pagina ?do=hublist&id=sono847ID
 
Il tag
code.gif
per il codice generico in tag
php.png
per il codice PHP il Tag [ HTML].....[/html] per il codice HTML ecc.
Altrimenti usa lo strumento codice dalla barra degli strumenti
box inserisci 2.png.JPG
 
grazie Marcus per il tempo che ti ho fatto perdere , diciamo che il redirect funziona , ma alla fine sono al punto di partenza ( che non funzionano le pagine ) grazie
 
Stato
Chiusa ad ulteriori risposte.

Discussioni simili