2009-02-17 11 views
7

La realidad URL que utiliza mi aplicación es:PHP Reglas de reescritura

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 de 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 esta opción para que aparezca como si la ubicación de esta página es

http://site.com/iPhone

sin cambiar para mostrar

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

Es esto posible? Gracias.

Respuesta

10

crear un archivo llamado .htaccess en la raíz de su sitio web y poner esto en ella.

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 que el usuario de un directorio de búsqueda en su url. por ejemplo, en lugar de uso mysite.com/IPhone mysite.com/search/IPhone el cual 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 redirigen Arnt, como sobre nosotros o una página web 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.

3

Las reglas de reescritura no son parte de PHP hasta donde yo sé, pero Apache (específicamente mod_rewrite) o cualquier servidor que esté utilizando. Para Apache, es necesario en el servidor para tener un archivo llamado .htaccess, y en ella poner algo como:

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

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

Cuestiones relacionadas