Pregunta

He publicado una pregunta aquí . Sin embargo, esto fue más acerca de cómo obtener consejos sobre qué hacer. Ahora que sé qué hacer, estoy buscando un poco de ayuda sobre cómo hacerlo!

Básicamente tengo un sitio web que es más o menos 100% dinámica. Todos los enlaces a páginas web se generan usando PHP y todas las páginas se componen de php incluye / código. Estoy tratando de mejorar el SEO de la página mediante la mejora de las direcciones URL (como se indica en la otra pregunta) y yo estoy luchando un poco.

Estoy utilizando mod_rewrite de reescribir las URLs bonitas a las direcciones URL feas en el servidor. Así que lo que necesito es convertir ahora las direcciones URL feas (que se generan a partir del código php en las páginas) a las URLs más agradables.

Estas son las direcciones URL que necesito para analizar (estos son en el otro aswell pregunta):

/index.php?m=ModuleType
/index.php?m=ModuleType&categoryID=id
/index.php?m=ModuleType&categoryID=id&productID=id
/index.php?page=PageType
/index.php?page=PageType&detail=yes

Esto es lo que yo quiero las URL anteriores que se analizan a:

/ModuleType
/ModuleType/CategoryName
/ModuleType/CategoryName/ProductName
/PageType
/PageType/Detail

No es un ejemplo de la otra pregunta Publicado por Gumbo sin embargo, me pareció que era un poco desordenado y poco clara sobre exactamente lo que estaba haciendo.

alguien podría ayudar a resolver este problema?

Gracias de antemano.

¿Fue útil?

Solución

Me parece ver lo que está buscando ... Usted ha hecho toda la reescritura de URL, pero todos los enlaces entre sus páginas está utilizando la sintaxis de URL de edad.

La única forma que veo de evitar esto es hacer algún tipo de búsqueda de expresiones regulares y reemplazar en los enlaces por lo que usan la nueva sintaxis. Este será un poco más complicado si todos los enlaces se generan dinámicamente, pero es de esperar que no será demasiado de esta hacer.

Sin ver cómo sus enlaces se generan en este momento, es difícil decir cómo cambiar el código. Imagino funciona algo como esto sin embargo:

<?php echo "<a href='/index.php?m=$ModuleType&categoryID=$id'>"; ?>

Así que es cambiar esto:

<?php echo "<a href='$ModuleType/$id'>"; ?>

Lo siento si he cometido errores en la sintaxis, justo al lado de la parte superior de mi cabeza ...

Otros consejos

A menos que no he entendido bien su pregunta, no es analizar el URL "feo", su script PHP se llama con ellos, por lo que $_GET[] sus parámetros (m, categoryId, ProductID) y combinarlos para hacer sus URLs bonitas, que no debe ser demasiado duro (sólo un poco de lógica para ver si un parámetro está ahí y concatenar las cadenas).

Se necesita un controlador frontal, que transmitirá la URL de la página correcta.

  1. Apache volverá a escribir la dirección URL utilizando reglas de .htaccess, de modo que todo lo escrito será redirigido a index.php? Q =. Por ejemplo, escribir http://example.com/i/am/here resultará en una llamada a index.php? q = / i / am / aquí
  2. Index.php analizará el trayecto desde $ _GET [ "q"] y decidir qué hacer. Por ejemplo, se puede incluir una página, o ir a la base de datos, busque el camino hacia arriba, conseguir el contenido apropiado e imprimirlo

Si quieres un ejemplo de trabajo de un .htaccess que hacer exactamente eso (redirigir a index.php con q = ruta?) Echar un vistazo a cómo lo hace Drupal:

http://cvs.drupal.org/ viewvc.py/drupal/drupal/.htaccess?revision=1.104

Como escribió Palantir esto se hace usando mod_rewrite y .htaccess. Para conseguir las condiciones correctas en su reescritura .htaccess es posible que desee echar un vistazo a una reescritura Generador Mod (por ejemplo, http://www.generateit.net/mod-rewrite/ ). Hace que sea mucho más fácil.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top