Videoblogs



Todos los articulostU MuSicA
Ultimos Agregados      |      Mas Vistos      |      Solo videos      |      Solo textos      |      Tags      |      Chat

 

 

Programando para que no importe la URL



Visto: 2907 veces - Enviado por: Rhosting
Conversa sobre este tema

 

En ocasiones, programando, se nos presentan problemas porque la url fue escrita con o sin el www. en el codigo. Por ejemplo, escribiste  http://www.rhosting.com.ar en vez de http://rhosting.com.ar o viceversa. Esto provoca errores de seguridad en AJAX como: “Error: uncaught exception: Permiso denegado para llamar el método XMLHttpRequest.open”, impidiendo su funcionamiento normal. En este tutorial te explicamos como podrás resolverlo usando .htaccess y php.

Leenos via RSS
Agendalo a tus Favoritos Favoritos 
Recomendalo Recomendalo

 

RH

 

 

 

Para saber más...

Enviar valores mediante POST o GET con Ajax usando una sola funcion
http://www.forosdelweb.com/f77/problema-cargar-codigo-ajax-434874/
Mapeo URL en ASP
Programando URLs Amistosas

 

 

 

Para resolver problemas ocasionados por la URL es necesario que tu página sepa en forma dinámica mediante que url esta siendo llamada. Tomemos por ejemplo el caso del carro de compras AJAX de Rhosting.com.ar. Nuestro carro es llamado en todas las páginas mediante un codigo como este:


<script type="text/javascript">

window.onload=function(){

recibeid('http://www.rhosting.com.ar/carro.php','','','carro','','');

}

</script>


Donde window.onload funciona en forma similar a colocar onload="" en el tag body de una página. O sea, ejecuta una serie de funciones javascript al cargarse la página.


En este caso la funcion recibeid cuyo desarrollo hemos explicado en el tutorial Enviar valores mediante POST o GET con Ajax usando una sola funcion


Ahora bien. Si la página es escrita en forma estática, o sea, si le pasamos el valor http://www.rhosting.com.ar a la funcion recibeid, esto ocasionaria un problema si la persona que esta visitando la página, ya sea porque le queda comodo, por omision, o lo que fuere, escribio http://rhosting.com.ar


El problema que originaria es que la página no funcionaria adecuadamente o que mostraria una leyenda como "Esta pagina esta intentando el acceso a informacion fuera de su control. Esto presenta un riesgo de seguridad.¿Desea Continuar?" o, en ingles, “Error: uncaught exception: Permiso denegado para llamar el método XMLHttpRequest.open”


Este es un error muy comun que se origina por el hecho de que XMLHttpRequest no puede pedir datos de otro dominio, solo trabajar con el dominio local por razones de seguridad.


Bien, existen dos posibles soluciones para esto. Una es llamar al carro mediante referencia absoluta. o sea colocar recibeid('carro.php','','','carro','',''); y dejar que simplemente el navegador se encargue de llamarlo correctamente.


Aunque esto puede presentar problemas cuando estamos trabajando en directorios o subdirectorios, o creando urls con .htaccess. Ademas de obligarnos a tener que cambiar constantemente la URL.


Sin embargo, otra opcion, es, por ejemplo,  colocar recibeid('http://<? echo $_SERVER['HTTP_HOST'];?>/carro.php','','','carro','','');  al llamar la url.


$_SERVER['HTTP_HOST'] es una variable de codigo PHP que básicamente nos trae todo lo que esta entre http:// y la siguiente barra invertida. En este caso www.rhosting.com.ar Esto permite que si lo que esta entre ambas cambia, la funcion php cambie lo que muestra,  dinámicamente.


Ahora bien, y qué sucede si no trabajas con páginas .html? Como es de público conocimiento, para que el codigo php funcione en una página, es necesario que esta página sea .php


Bien, eso podrás resolverlo creando una URL amistosa mediante un .htaccess.


Es simple. Solo debes crear un archivo de texto. Puede ser creado con cualquier editor html, como dreamweaver o FrontPage, o incluso creado como se crea un txt en Mi PC o Mis Documentos.


Al crearlo, simplemente debes darle el nombre .htaccess sin ninguna extension.


Dentro de él deberas escribir unas lineas como las siguientes:


RewriteEngine on

Rewriterule ^mipagina.html$ mipagina.php

Rewriterule ^seccion/(.*)/(.*)/(.*)$ seccion.php?variable1=$1&variable2=$2&variable3=$3


Basicamente, lo que escribis son rewrite rules, o reglas de re escritura. ¿ De re escritura de que? De la url, por supuesto. Por ejemplo, esto:


Rewriterule ^mipagina.html$ mipagina.php


Quiere decir que cuando en tu navegador escribas http://www.tusitio.com/mipagina.html aparecerá como si estuvieras viendo esa página, pero en realidad estarás viendo http://www.tusitio.com/mipagina.php


Volviendo a la solucion del problema con AJAX, esto permite que guardes tus paginas con extension .php, ejecuten codigo php y sin embargo tus visitantes la sigan viendo como páginas .html. 


Si te preocupa que sea dificil trabajar con páginas php, te comentamos que Dreamweaver permite ver ambos tipos de paginas, php y html como si fueran html. O sea, una página php puede ser trabajada como una página html, desde el punto de vista estético, si no necesitas trabajar con codigo.


Como ultimo comentario, ya para casos mas avanzados, la regla 


Rewriterule ^seccion/(.*)/(.*)/(.*)$ seccion.php?variable1=$1&variable2=$2&variable3=$3


Te permite pasarle variables a la url. Por ejemplo, si tu url para que funcione necesita las variables 1, 2 y 3 como en el ejemplo, pero escribirla asi: http://www.tusitio.com/seccion.php?variable1=valor1&variable2=valor2&variable3=valor3 hace que los navegadores no indexen adecuadamente tus páginas, mediante esta regla de escritura tu URL lucirá de esta forma: http://www.tusitio.com/valor1/valor2/valor3


Ten presente que, la regla de reescritura solo reemplaza los (*) por lo que haya en el signo $ seguido de un número, que esta en el mismo orden en que aparece el (*)


Bien, esperemos que uses esta solucion y la disfrutes.



 


Enlaces relacionados

 

Tags relacionados

 

Conversaciones

Sin conversaciones. Abri una conversacion sobre este tema!!


Nick (sin espacios, ni acentos)

Tu Email:
Permitir que otros usuarios me contacten

Tu Contraseña:

Tus comentarios:

 

Los mas buscados

 

Canales
Aikido
Brazilian
Defensa Personal
Tai chi chuan
Valetodo
Ipod Iphone
Telefonos
Administracion
Empleo
Emprendedores
Gurues
Mercadeo
Motivacion
Temas Legales
Sony Vegas
Playstation
Trucos
PHP
Dreamweaver
Excel
Flash
Photoshop
PowerPoint
varios
Dietas
Enfermedades
Area de Usuarios
Bases de Datos
Buscadores
Compras
Correo Electronico
Evitando el Spam
Panel CPanel
Panel Plesk
Revendedores
Sobre mi dominio
Solucion de problemas
Subiendo mi sitio
Utilidades
Videos Rhosting

Ultimas 5 personas buscando Amor!

fede73 (20)
Argentina

"...solo tus alas precisa el intento..."
Buscando: Mujer
carter (30)
Colombia

"buscando esa persona especial que eres tu."
Buscando: Mujer
merlincita (20)
Colombia

"soy una persona super amigable"
Buscando: HombreMujer
ikaika (28)
México

"te invito a conocerme"
Buscando: Hombre
gitanitojnony (24)
España

"busco chica para relación estable"
Buscando: Mujer

[+] Ver más

Registrate Gratis y conocé el tuyo!

 

Este contenido es útil para..

Aquellos programadores que tienen problemas con sus programas debido a que la url es escrita con o sin el www.

Recibe nuestras novedades

Si deseas recibir nuestro boletin con informaciones útiles y sorprendentes dejanos tu email aqui



Herramientas Utiles

 


 

 

 

 

Terminos del Servicio - Politica de Privacidad - Ayuda a tus amigos, recomiendanos! - Contactanos
Todos los articulos de la seccion de Ayuda son Copyleft. Podes reproducirlos citando la fuente.
Producto Rhosting.com.ar- 1999 al 2008 - Resistencia - Chaco Las Malvinas son Argentinas