/ / Cómo hacer una URL limpia de esto (htaccess URL rewrite) - php, apache, .htaccess, mod-rewrite, url-rewriting

Cómo hacer una URL limpia de esto (htaccess URL rewrite) - php, apache, .htaccess, mod-rewrite, url-rewriting

Uso un sistema de soporte y quiero reescribir elURLs para que sean más amigables con SEO y mejor legibles. Tengo una comprensión muy básica de .htaccess rewrite rules / regex y probé cientos de cosas, pero no pude hacer que funcionara.

El sistema de soporte está instalado en esta URL:

http://www.example.com/help/

El código está generando esta URL para cada artículo en la KB:

http://www.example.com/help/index.php?/selfhelp/view-article/article-1

El código está generando esta URL para el resumen de la categoría dentro de la KB:

http://www.example.com/hulp/index.php?/selfhelp/categories

¿Cómo puedo reescribir esas URL a algo legible y amigable para SEO como:

http://www.example.com/help/article/article-1

Y para las categorías:

http://www.example.com/hulp/categories

Si esto es incluso posible? Y si es así, ¿cómo puedo hacer esto usando .htaccess?

Respuestas

0 para la respuesta № 1

Bueno, puedes hacer que las URL amigables funcionen así y también redirigir las URL antiguas:

# Rewrite new URLs
RewriteRule ^help/article/(.+)$ help/index.php?/selfhelp/view-article/$1 [E=rewritten:1]
RewriteRule ^help/categories$ help/index.php?/selfhelp/categories [E=rewritten:1]

# Redirect old URLs
RewriteCond %{ENV:rewritten} !=1
RewriteCond %{ENV:REDIRECT_rewritten} !=1
RewriteCond %{QUERY_STRING} ^/selfhelp/view-article/(.+)$
RewriteRule ^help/index.php$ /help/article/%1 [R=301,L]

RewriteCond %{ENV:rewritten} !=1
RewriteCond %{ENV:REDIRECT_rewritten} !=1
RewriteCond %{QUERY_STRING} =/selfhelp/categories
RewriteRule ^help/index.php$ /help/categories [R=301,L]