Comunidad de diseño web y desarrollo en internet online

Conflicto con parametros en htaccess

Citar            
MensajeEscrito el 21 May 2015 04:45 pm
Hola :)

hace mucho no visitaba el foro pero si algo siempre recuerdo es que la mayor parte de respuestas las he encontrado siempre aquí xD
Tengo una duda y vengo a invocar los expertos en htaccess se que el foro dice php y mysql pero creí que seria mejor lugar aquí que en hosting.

En fin tengo este conflicto:

Código :

RewriteRule ^app/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ app/index.php?call=$1&action=$2&id=$3 [L, NC]

y

Código :

RewriteRule ^app/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ app/index.php?call=$1&action=$2&response=$3 [L,NC]


las URLs quedarían algo así:

1. app/provider/edit/1
2. app/provider/add/success

Donde app= directorio, provider= Get para llamar a provider.php edit/add = action y 1/success = id/response

el conflicto es en el tercer parámetro id & response ya que es la misma pagina nada mas que en uno recibo un ID de la base de datos y en el otro recibo "success o error"
el gran problema es que los 2 parámetros se reciben en la misma página y si recibo "id" luego no me recibe "response"

¿alguien sabe como lo podría solucionar?

De ante mano gracias por la ayuda

Por svclouds

3 de clabLevel



Genero:Masculino  

Programador de plataformas Webs

chrome
Citar            
MensajeEscrito el 21 May 2015 11:43 pm
en tu regla necesitas especificar una "Expresion Regular"

Por ejemplos, tus IDs van a ser solo números, a pues le pones el tipico [0-9] y asi (mas info en la docu de apache)

y si van a ser true o false, existe tambien una expresión regular para eso.

Ahora, podra diferencia entre, ahora que como lo utilizas seria cuestion de agregar un posible 4to elemento:

Código :

RewriteRule ^app/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ app/index.php?call=$1&action=$2&id=$3&response=$4 [L,NC]

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

chrome
Citar            
MensajeEscrito el 22 May 2015 03:36 pm

elporfirio escribió:

en tu regla necesitas especificar una "Expresion Regular"

Por ejemplos, tus IDs van a ser solo números, a pues le pones el tipico [0-9] y asi (mas info en la docu de apache)

y si van a ser true o false, existe tambien una expresión regular para eso.

Ahora, podra diferencia entre, ahora que como lo utilizas seria cuestion de agregar un posible 4to elemento:

Código :

RewriteRule ^app/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ app/index.php?call=$1&action=$2&id=$3&response=$4 [L,NC]


Gracias por responder
a ver si me pueden ayudar porque no logro llegar al punto.

como haría para añadir una condición en el htaccess que diferencie entre los GET de esta forma:

Si envía "ID"
app/index.php?call=provider&action=edit&id=1
La url debería quedar así:
app/provider/edit/1

Pero si envía "response"
app/index.php?call=provider&action=add&response=success
La url debería quedar así:
app/provider/add/success

Como hago para que el .htaccess reconozca cual de los dos envío response o id x_x

Por svclouds

3 de clabLevel



Genero:Masculino  

Programador de plataformas Webs

chrome
Citar            
MensajeEscrito el 22 May 2015 05:15 pm

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

chrome
Citar            
MensajeEscrito el 22 May 2015 05:45 pm

elporfirio escribió:

Te digo que leas un poquito:

http://httpd.apache.org/docs/2.4/rewrite/intro.html

la sección es Rewrite Conditions


Ya leí pero no comprendo que debo de hacer

te agradecería si pudieras explicarme o darme un ejemplo si no es mucha molestia

Por svclouds

3 de clabLevel



Genero:Masculino  

Programador de plataformas Webs

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.