Ayuda super urgente php

  • Autor Autor blogers
  • Fecha de inicio Fecha de inicio
B

blogers

Pi
SEO
Hola bueno venog a molestarlos de nuevo necesito una ayuda la verdad ya tengo 3 dias batallando con esto y no puedo lidiar mas tiempo si alguien me contacta hablamos por skype es para hacer un redireccionamineto correcto en php


el code


que me hicieron ayer

PHP:
<?php
$hola= $_GET["job"];

include "conf.php";
include "functions.php" ;
require_once 'parse.php' ;

$reta = strtoupper(substr(str_replace('www.', '', $_SERVER['SERVER_NAME']), 0, 2));

$tuti = "".strtolower($reta)."bolsa";

$result = mysql_query("SELECT link FROM ".$tuti." where serial = '".$hola."' limit 1");


$row = mysql_fetch_array($result);

header('Location: '.$row["link"].'');

?>


El code de arriba sirve para redirecionar

Nuevo code

que ayuda a elimanr el subdominio (us.misitio.com y lo poner asi misitio.com) lo malo de este code que el pais US ahora ya no me redirige correctamente

PHP:
define('_siteurl','http://'.strtolower((_subdomain_ == 'US' ? '' : _subdomain_.'.')).'misitio.com');

viejo codeo

Este code era el anterior si servia pero deja el pais con el subdominio us.misitio.com

PHP:
define('_siteurl','http://'.strtolower(_subdomain_).'.misitio.com');


Lo que pasa ahora que se implemento el nuevo code ahora dejo de funcionar un redirecionamiento
 
Última edición:
El segundo fragmento no funciona así.

Prueba.
PHP:
define('_siteurl','http://'.strtolower((    (_subdomain_ == 'US') ? '' : _subdomain_.'.'    ).'misitio.com');
 
Se quedo la pagina en blanco:s

Se supone que el codigo debe hacer lo siguiente:
PHP:
define('_siteurl','http://'.strtolower((    (_subdomain_ == 'US') ? '' : _subdomain_.'.'    ).'misitio.com');
Si _subdomain_ es igual a 'US', se regresa una cadena vacia, de lo contrario se regresa el valor actul de _subdomain_ más un punto.

US:
_siteurl = 'http://misitio.com'

No US:
_siteurl = 'http://otro.misitio.com'

---------- Post agregado el 12-oct-2013 hora: 14:29 ----------

Prueba este:
PHP:
define('_siteurl','http://'.strtolower(    (_subdomain_ == 'US') ? '' : _subdomain_.'.'    ).'misitio.com');

Tenia error de sintaxis.
 
Se supone que el codigo debe hacer lo siguiente:
PHP:
define('_siteurl','http://'.strtolower((    (_subdomain_ == 'US') ? '' : _subdomain_.'.'    ).'misitio.com');
Si _subdomain_ es igual a 'US', se regresa una cadena vacia, de lo contrario se regresa el valor actul de _subdomain_ más un punto.

US:
_siteurl = 'http://misitio.com'

No US:
_siteurl = 'http://otro.misitio.com'

---------- Post agregado el 12-oct-2013 hora: 14:29 ----------

Prueba este:
PHP:
define('_siteurl','http://'.strtolower(    (_subdomain_ == 'US') ? '' : _subdomain_.'.'    ).'misitio.com');

Tenia error de sintaxis.

No sigue iguanas jejeje
 
La situación es:
Quieres redireccionar un antiguo dominio a uno nuevo?
 
En el primer código lo que se intenta extraer es el subdominio en el que se está, para que así pueda conectarse a una tabla que empieza por el subdominio: xxbolsa. El segundo lo que devuelve es la dirección del sitio con el subdominio, en caso de que no sea US; ya que si es así, sólo devuelve la dirección del sitio y no el subdominio. Es decir, que si es US en lugar de devolver "us.misitio.com" devuelve "misitio.com", pero si es otro subdominio devolverá "xx.misitio.com".

Partiendo de eso, si estamos en el subdominio US y queremos conectar a la tabla "usbolsa", se deberá definir lo contrario al segundo código. Es decir, que si no es US o no es un subdominio, la tabla sea "usbolsa". Más que nada porque sino la tabla será "mibolsa", ya que $reta obtiene los dos primeros caracteres de la variable $_SERVER['SERVER_NAME']. Supongo que dicha tabla no existe, así que es normal que no funcione.

El segundo código no hace falta que lo cambies, ya que independientemente de la ausencia o posición de los paréntesis, debería funcionar correctamente. Pero en el primero -que por cierto no es muy seguro- deberás incluir una condición para que, en caso de que no se especifique un subdominio, se utilice "us". Sería como lo contrario al segundo código, como mencionaba antes. Hay varias formas de hacerlo, pero con una bastará.

Cambia:
PHP:
$reta = strtoupper(substr(str_replace('www.', '', $_SERVER['SERVER_NAME']), 0, 2));

Por:
PHP:
$subdomain = strtolower(substr(str_replace('www.', '', $_SERVER['SERVER_NAME']), 0, 2));
$reta = $subdomain === 'mi' ? 'us' : $subdomain;

Donde dice 'mi' irían los dos primeros caracteres del dominio. No obstante, me preguntaba si dentro del primer código puedes utilizar la constante '_subdomain_'. De esta forma se ahorraría lo anterior, y se podría cambiar por:
PHP:
$reta = _subdomain_;

Saludos!
 
Última edición:
Solucionado... :distant:
 

Temas similares

Atrás
Arriba