L’URL effettivamente utilizzato dalla mia app è:
http://site.com/search.php?search=iPhone
ma mi piacerebbe che fosse ansible ottenere lo stesso con
http://site.com/iPhone
Non ho esperienza delle regole di riscrittura, come posso impostarlo?
La soluzione ha funzionato ma il nuovo URL viene visualizzato nella barra degli indirizzi. Ho pensato che sarebbe stato ansible impostarlo in modo che appaia come se la posizione della pagina fosse
http://site.com/iPhone
senza cambiare visualizzazione
http://site.com/search.php?search=iPhone
È ansible? Grazie.
Crea un file chiamato .htaccess nella radice del tuo sito web e mettilo dentro.
RewriteEngine on Options +FollowSymlinks RewriteBase / RewriteRule ^(.*) search.php?search=$1 [R]
Dovrebbe fare il trucco.
Suggerirei comunque di renderlo un po ‘più specifico, quindi potrebbe richiedere all’utente di una directory di ricerca nell’URL. ad esempio invece di mysite.com/IPhone usa mysite.com/search/IPhone che funzionerebbe come
RewriteEngine on Options +FollowSymlinks RewriteBase / RewriteRule ^search/(.*) search.php?search=$1 [R]
Ciò rende più semplice avere pagine normali che non vengono reindirizzate, come su di noi o su una homepage di base.
Come dice Chris, questo non è PHP ma Apache lo fa, e se funziona può dipendere dalla configurazione di hosting.
Devi specificare qualcosa di simile nel tuo file .htaccess:
RewriteEngine on RewriteRule /(.*) /search.php?search=$1
Controlla anche:
Le regole di riscrittura non fanno parte di PHP per quanto ne so, ma Apache (in particolare mod_rewrite
) o qualunque server tu stia usando. Per Apache, è necessario sul server avere un file chiamato .htaccess
e inserire qualcosa come:
RewriteEngine on RewriteRule ^(\w+)/?$ /index.php?search=$1
^(\w+)/?$
è un’espressione regolare – corrisponde a qualsiasi parola di 1 o più caratteri, seguita da un /
forse. Quindi cambia site.com/iPhone
in site.com/index.php?search=iPhone
. Suona bene?