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.
Tengo claro que si eligiese como url amigable la siguiente /category/geografi/succes
el htaccess seria
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.
Cita de: OssoH en 6 Noviembre 2014, 23:24 PM
Tengo claro que si eligiese como url amigable la siguiente /category/geografi/succes
el htaccess seria
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
RewriteEngine On
RewriteBase /
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]
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]
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]
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]
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]
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]
RewriteRule ^/page/([a-zA-Z0-9_-]+)/x/([a-zA-Z0-9_-]+)/?$ index.php?page=$1&x=$2 [L]
RewriteRule ^/x/([a-zA-Z0-9_-]+)/page/([a-zA-Z0-9_-]+)/?$ index.php?page=$2&x=$1 [L]
RewriteRule ^/page/([a-zA-Z0-9_-]+)/?$ index.php?page=$1 [L]
Y establecer cual es el orden.
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