2012-01-04 18 views
13

Necesito crear direcciones URL de SEO para mi sitio. Descubrí que puedo usar .htaccess para reescribirlos. Así que he intentado esto:.htaccess problema de novato usando mod_rewrite

> http://www.domain.com/page/1/mypage 
> http://www.domain.com/user/2/myuser 
> http://www.domain.com/help/3/myhelp 

ahora estoy atascado con una regla común y no entiendo Ant para redirigir el tráfico basándose en el nombre de la página:

que utilizo:

RewriteEngine ON 
RewriteRule ^(.*)$ page.php?page=$1 

Luego en mi PHP no obtengo la página correctamente, obtengo el archivo que es incorrecto.

¿Cómo puedo solucionar esto?

+0

Para un buen comienzo, marque esta herramienta en línea http://www.webconfs.com/url-rewriting-tool.php para ver cómo sus URL pueden ser manejados. Generará también tu código .htaccess. – Arfeen

Respuesta

17

Esto es lo que hay que hacer:

RewriteEngine On 
RewriteBase/
RewriteRule ^([a-z_\-]+)/([0-9]+)/([a-z_\-]+)/?$ page.php?page=$1&id=$2&name=$3 [NC,L] 

NC (o nocase) hace que el caso insensible a prueba, a = a;

L (o última) Última regla. Detenga el proceso de reescritura aquí y no aplique más reglas de reescritura;

Puede obtener más información en http://httpd.apache.org/docs/current/mod/mod_rewrite.html

+0

veo la diferencia, déjame intentar, ¿por qué nc y l? – Marty

+3

'NC' es * ningún caso *, es decir, no distingue entre mayúsculas y minúsculas. 'L' es * último *, lo que significa que el procesamiento de la regla se detendrá si esta regla coincide con –

+0

actualicé mi respuesta –

Cuestiones relacionadas