2012-02-05 10 views
7

tengo un sitio web que permite a las personas obtener el manual en línea. Tengo una nueva versión del manual donde todo se genera dinámicamente usando php y mysql. así que no se generarán más html.manual de usuario (seo + auto generate)

tengo el manual en francés e inglés ahora. Me entero de que para los propósitos del motor de búsqueda que será bueno si tengo url que es amable con gogole y Yahoo, etc ...

ahora aquí es mi problema:

quiero mostrar la url de esta manera:

  • /manual/que va a ir a la página principal manual en el que el usuario elija una lang
  • /manual/fr/esto mostrará la lista de todos los capítulos disponibles
  • /manual/fr/1.0 esto mostrará el capítulo 1

me ocurrió la idea cuando tengo que usar algo como:

rewriterule /manual/(.*)/(.*)/(.*)/ index.php?lang=$1& ... 

puedo hacer esto usando 1 regla? o necesito múltiplos?

muchas gracias

Respuesta

11

Esto es lo que tiene que hacer:

RewriteEngine On 
RewriteRule ^manual/?$ index.php?action=selectLang [L,NC,QSA] 
RewriteRule ^manual/(fr|en)/?$ index.php?action=listChapter&lang=$1 [L,NC,QSA] 
RewriteRule ^manual/(fr|en)/([0-9\.]+)(/[^/]+)?/?$ index.php?action=listChapter&lang=$1&chapter=$2 [L,NC,QSA] 

El primero se carga la página en la que el usuario elija un idioma. En su PHP puede consultar el $_GET['action'] para poder cargar la página "seleccionar el idioma". La segunda misma idea que la primera pero para la lista de capítulos. Ahora el tercero, puede usar /manual/fr/1.0 o /manual/fr/1.0/chapter-title. Esto funcionará mejor para SEO si agrega el título.

[] al final de cada RewriteRule son la bandera, aprender más aquí: http://httpd.apache.org/docs/2.3/rewrite/flags.html

+0

gracias por su ayuda, tengo mucho que aprender ahora – Bianca

+0

le dan la bienvenida, si en un principio no es fácil, pero lo conseguirá ! –