Reglas de reescritura de PHP

La URL real que usa mi aplicación es:

http://site.com/search.php?search=iPhone 

pero me gustaría que sea posible lograr lo mismo con

 http://site.com/iPhone 

No tengo experiencia en reglas de reescritura, ¿cómo puedo configurar esto?

La solución ha funcionado, pero la nueva URL se muestra en la barra de direcciones. Pensé que habría sido posible configurar esto para que parezca que la ubicación de la página es

http://site.com/iPhone

sin cambiar para mostrar

 http://site.com/search.php?search=iPhone 

es posible? Gracias.

Crea un archivo llamado .htaccess en la raíz de tu sitio web y ponlo en él.

 RewriteEngine on Options +FollowSymlinks RewriteBase / RewriteRule ^(.*) search.php?search=$1 [R] 

Debería hacer el truco.

Sin embargo, le sugiero que lo haga un poco más específico, por lo que tal vez requiera al usuario de un directorio de búsqueda en su url. por ejemplo, en lugar de mysite.com/IPhone utiliza mysite.com/search/IPhone que funcionaría como

 RewriteEngine on Options +FollowSymlinks RewriteBase / RewriteRule ^search/(.*) search.php?search=$1 [R] 

Esto hace que sea más fácil tener páginas normales que se redirigen, como sobre nosotros o una página de inicio básica.

Como dice Chris, esto no es PHP, pero Apache lo hace, y si funciona puede depender de la configuración de tu hosting.

Debe especificar algo como esto en su archivo .htaccess:

 RewriteEngine on RewriteRule /(.*) /search.php?search=$1 

Verifique también:

  • mod_rewrite: una guía para principiantes para la reescritura de URL
  • Módulo mod_rewrite, motor de reescritura de URL

Las reglas de reescritura no son parte de PHP, hasta donde yo sé, pero Apache (específicamente mod_rewrite ) o el servidor que estés usando. Para Apache, necesita en el servidor tener un archivo llamado .htaccess , y en él colocar algo como:

 RewriteEngine on RewriteRule ^(\w+)/?$ /index.php?search=$1 

^(\w+)/?$ es una expresión regular: coincide con cualquier palabra de 1 o más caracteres, seguida de un / tal vez. Por lo tanto, cambia site.com/iPhone en site.com/index.php?search=iPhone . ¿Suena bien?