Foros del Web » Programando para Internet » PHP »

Cambiar en servidor Unix el index.htm/php... por otro

Estas en el tema de Cambiar en servidor Unix el index.htm/php... por otro en el foro de PHP en Foros del Web. Hola a todos solo queria preguntaros como puedo hacer que cuando pongo www.miserver.com en vez de que habra index.php pues que habra index.php?web=inicio si no ...
  #1 (permalink)  
Antiguo 10/02/2003, 08:41
 
Fecha de Ingreso: febrero-2003
Mensajes: 753
Antigüedad: 14 años, 10 meses
Puntos: 2
Cambiar en servidor Unix el index.htm/php... por otro

Hola a todos solo queria preguntaros como puedo hacer que cuando pongo www.miserver.com en vez de que habra index.php pues que habra index.php?web=inicio si no recuerdo mal creo que era metiendo una archivo .htdocs o algo asi pero no recuerdo,

Saludos, espero su respuesta.
  #2 (permalink)  
Antiguo 10/02/2003, 08:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Sería en los .htaccess (suponiendo que tu servidor HTTP sea Apache) o mas drastico en tu httpd.conf .. en en el servidor virtual q uses para ese sitio o a todo el servidor entero ...

Suponiendo q usas Apache 1.3.x .. revisa el manual acerca de los .httpdaccess

http://httpd.apache.org/docs/howto/htaccess.html
http://httpd.apache.org/docs/mod/mod....html#redirect

Por lo demas .. como sugerencia:

Si usas una estructura de pagina tipo:

si opcion = algo1 .. include o redirecciona a tal pagina
si opcion = algo2 .. include o redirecciona a tal pagina
si opcion = algo3 .. include o redirecciona a tal pagina
si opcion = algo4 .. include o redirecciona a tal pagina

Siempre puedes hacer un caso "else" o un juego de switch .. case con una opcion "default" que será .. si no es ningua de las anteriores .. usa X ..

O un simple:

Código PHP:
if (!isset($_GET['web']){
$web=inicio;

Eso dice: "Si no está definido la variable q entra por GET (url) web .. define estado inicial de $web con inicio" ...

Usalo antes de entrar a tus condicionales q decides q seccion caragar ...

Un saludo,

pd: .. Intenta siempre dar soluciones "programadas" a tus problemas .. usar .htaccess para este caso concreto es una solución "drastica" .. si algun dia usas esa aplicación en un servidor q no te dejen usar .htaccess .. no funcionaría com esperas tu aplicación ...
  #3 (permalink)  
Antiguo 10/02/2003, 09:23
 
Fecha de Ingreso: febrero-2003
Mensajes: 753
Antigüedad: 14 años, 10 meses
Puntos: 2
entonces dices que no seria correcto crear un .htaccess con esta linea " DirectoryIndex index.php?web=inicio " lo he hecho y funciona bien y solo afecta a la carpeta donde la he metido supongo que si lo pongo en el raiz no le afecte a todas, pero de todas formas podrias explicarme un poco mas eso ultimo lo del "else"

Saludos
  #4 (permalink)  
Antiguo 10/02/2003, 09:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Usa el condicional que puse

if (!isset($_GET['web']){
$web=inicio;
}


Antes de q uses esa variblle $web en tu resto de if .. elseif ... o switch .. Es una solución ... otras soluciones depende de como tengas montado tus if.. elseif .. o swith o lo q uses para determinar q seccion cargar o redireccionar con ese web=inicio q haces ...

Un saludo,
  #5 (permalink)  
Antiguo 10/02/2003, 09:33
 
Fecha de Ingreso: febrero-2003
Mensajes: 753
Antigüedad: 14 años, 10 meses
Puntos: 2
yo utilizo esta linea <?php include($web); ?> dices que quite esa linea y ponga la tuya entonces al teclear index.php me saldra por defecto index.php?wen=inicio y si pongo index.php?web=ejemplo.htm me saldra ejemplo como lo tengo lo tenia entes?
  #6 (permalink)  
Antiguo 10/02/2003, 09:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Te he dicho ya 3 veces q lo pongas antes de que uses esa variable $web ...

Código PHP:
<?php
if (!isset($_GET['web']){
   
$web="inicio.html";
}
 include(
$web); 
?>
y por supuesto borra tu .htaccess ...

Tambien .. revisa los peligros de seguridad de usar el include como lo haces .. Revisa las FAQ's

Un saludo,

Última edición por Cluster; 10/02/2003 a las 09:39
  #7 (permalink)  
Antiguo 10/02/2003, 09:45
 
Fecha de Ingreso: febrero-2003
Mensajes: 753
Antigüedad: 14 años, 10 meses
Puntos: 2
Pues, ahora me sale un error y no se muestra nada de la pagina error en la linea 296 supongo que sera la linea del codigo que es que he hecho mal y una ultima pregunta problemas de seguridad ¿que puedo terner?
  #8 (permalink)  
Antiguo 10/02/2003, 09:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cuando en un foro estes preguntando sobre algo .. y hay un error por medio .. PONLO! .. y si es tu LINEA tal .. pon esa linea tambien ..

Cuantos mas datos mejor para responder ..

Los problemas de seguridad son por la forma de trabajar de include() .. si yo te pongo cualquier pagina de tu servidor o incluso de externos .. El include lo va a ejecutar en tu servidor así q puedes imaginar ...

Un saludo,
  #9 (permalink)  
Antiguo 10/02/2003, 10:05
 
Fecha de Ingreso: febrero-2003
Mensajes: 753
Antigüedad: 14 años, 10 meses
Puntos: 2
Pues el error es el siguiente: " Parse error: parse error in /home/tombraider/htdocs/images/uno/index.php on line 296 "

y esa linea corres ponde a:

295 --> <?php
296 --> if (!isset($_GET['web']){
297 --> $web="inicio";
298 --> }
299 --> include($web);
300 --> ?>

Si es verdad lo prove una vez y funcionaba eso que tu dices ¿que fag tendria que leerme?
  #10 (permalink)  
Antiguo 10/02/2003, 11:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
me faltó un parentesis de cierre del IF .. (Tu tambien puedes colaborar en casos así )

Código PHP:
<?php
if (!isset($_GET['web'])){
   
$web="inicio.html";
}
 include(
$web); 
?>
La Faq .. pues esta por ejemplo:

http://www.forosdelweb.com/showthrea...278#post265278

Hay muchas formas de hacerlo .. esa es una .. pero la idea es que NUNCA se llame directamente al include($web) siendo $web="pagina.html" .. pues podria usar otrapagina.php .. como mucho usa algo tipo (si todas las paginas son .html .. ):

include($web.'.html');

y llamarias a tus páginas SOLO:
nose.php?web=inicio

(sin extension .. pues eso ya se lo das en el código ...)

Con eso mínimo aumentas algo la seguridad .. pero igual podria llamara a cualquier.html q tengas .. La idea es q definas el grupo de paginas q vas a usar y q solo sean esas .. una forma es la de esa FAQ's .. hay varias mas.

Un saludo,
  #11 (permalink)  
Antiguo 10/02/2003, 12:28
 
Fecha de Ingreso: febrero-2003
Mensajes: 753
Antigüedad: 14 años, 10 meses
Puntos: 2
Pues solo darte las gracias a quedado muy bien y funcionan todas las partes, me miraré bien la faq, Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:10.