Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: OssoH en 6 Noviembre 2014, 23:20 pm



Título: url con tres parametros htaccess
Publicado por: OssoH en 6 Noviembre 2014, 23:20 pm
Tengo una url que le puedo pasar como máximo tres parámetros indistintamente en un orden diferente. No siempre tengo que pasarle tres parametros, le puedo pasar 1, 2, o los tres 3.
Es decir por ejemplo
/?page=category&x=geografi&action=succes
/?action=succes
/?x=geografi&page=category&action=succes

Había pensado en tener una url amigable de la siguiente forma
/category/geografi/succes
pero esto no es posible porque el orden lo puedo poner distinto. Por lo tanto pienso que la url amigable deberia ser :
Por ejemplo /?page=category&x=geografia&action=succes
convertido sería  => /page/category/x/geografia/action/succes

Mi pregunta es...¿Que reglas serían en el htaccess?

Yo luego en el PHP recuperaria las variables de la url :
$_GET['page']
$_GET['x'];
$_GET['action']

Acepto sugerencias si me planteamiento no es el correcto.
Muchas gracias.




Título: Re: url con tres parametros htaccess
Publicado por: OssoH en 6 Noviembre 2014, 23:24 pm
Tengo claro que si eligiese como url amigable la siguiente  /category/geografi/succes

el htaccess seria

Código:
RewriteEngine On
RewriteBase /
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ index.php?page=$1&x=$2&action=$3 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ index.php?page=$1&x=$2 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/?$ index.php?page=$1 [L]

Pero como en mi url puede variar de posición los parámetros, por eso plantee otro tipo de url.




Título: Re: url con tres parametros htaccess
Publicado por: MinusFour en 6 Noviembre 2014, 23:55 pm
Tengo claro que si eligiese como url amigable la siguiente  /category/geografi/succes

el htaccess seria

Código:
RewriteEngine On
RewriteBase /
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ index.php?page=$1&x=$2&action=$3 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ index.php?page=$1&x=$2 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/?$ index.php?page=$1 [L]

Pero como en mi url puede variar de posición los parámetros, por eso plantee otro tipo de url.


Pues así sería cuestion de agregar las palabras page, x, action

Código
  1. RewriteEngine On
  2. RewriteBase /
  3. RewriteRule ^/page/([a-zA-Z0-9_-]+)/x/([a-zA-Z0-9_-]+)/action/([a-zA-Z0-9_-]+)/?$ index.php?page=$1&x=$2&action=$3 [L]
  4. RewriteRule ^/page/([a-zA-Z0-9_-]+)/action/([a-zA-Z0-9_-]+)/x/([a-zA-Z0-9_-]+)/?$ index.php?page=$1&x=$3&action=$2 [L]
  5. RewriteRule ^/action/([a-zA-Z0-9_-]+)/page/([a-zA-Z0-9_-]+)/x/([a-zA-Z0-9_-]+)/?$ index.php?page=$2&x=$3&action=$1 [L]
  6. RewriteRule ^/x/([a-zA-Z0-9_-]+)/page/([a-zA-Z0-9_-]+)/action/([a-zA-Z0-9_-]+)/?$ index.php?page=$2&x=$1&action=$3 [L]
  7. RewriteRule ^/x/([a-zA-Z0-9_-]+)/action/([a-zA-Z0-9_-]+)/page/([a-zA-Z0-9_-]+)/?$ index.php?page=$3&x=$1&action=$2 [L]
  8. RewriteRule ^/action/([a-zA-Z0-9_-]+)/x/([a-zA-Z0-9_-]+)/page/([a-zA-Z0-9_-]+)/?$ index.php?page=$3&x=$2&action=$1 [L]
  9. RewriteRule ^/page/([a-zA-Z0-9_-]+)/x/([a-zA-Z0-9_-]+)/?$ index.php?page=$1&x=$2 [L]
  10. RewriteRule ^/x/([a-zA-Z0-9_-]+)/page/([a-zA-Z0-9_-]+)/?$ index.php?page=$2&x=$1 [L]
  11. RewriteRule ^/page/([a-zA-Z0-9_-]+)/?$ index.php?page=$1 [L]

Y establecer cual es el orden.


Título: Re: url con tres parametros htaccess
Publicado por: OssoH en 6 Noviembre 2014, 23:59 pm
Vaya...que fácil se vé cuando está hecho.
No se me había ocurrido esa forma. Salen muchas líneas en el htaccess pero queda más legible.

Gracias