Ver Mensaje Individual
  #3 (permalink)  
Antiguo 17/06/2002, 13:13
itatpc
Invitado
 
Mensajes: n/a
Puntos:
Re: Abrir Siempre con marco principal..

Con este script en perl, que debes salvar en un archivo de texto y llamarlo, por ejemplo, frames.cgi:

Código:
#!/usr/bin/perl

# Pon aqui la URL, incluyendo http://, de tu 
# jonjunto de marcos (frameset):

my $FramesetURL = 'http://www.tusitio.com/index.html';


# pon aqui el nombre del archivo que sera
# sustituido por los diferentes archivos
# en el frameset:

my $ReplaceThisFile = 'home.html';

# No toques esto:

use strict;
use LWP::Simple;
my $Page = get $FramesetURL;
if($ENV{QUERY_STRING})
{
	$ENV{QUERY_STRING} =~ s!%([a-fA-F0-9][a-fA-F0-9])!pack("C",hex($1))!eg;
	$ENV{QUERY_STRING} =~ s!^https?://(www\.)?!!i;
	$FramesetURL =~ s!^https?://(www\.)?!!i;
	$FramesetURL =~ s!/[^/]*$!/!;
	while($ENV{QUERY_STRING} =~ m!^([^/]{0,}/)!)
	{
		my $one = $1;
		last unless $FramesetURL =~ m!^([^/]{0,}/)!;
		last if lc($1) ne lc($one);
		$ENV{QUERY_STRING} =~ s!^$one!!i;
		$FramesetURL =~ s!^$one!!i;
	}
	$ReplaceThisFile = "$FramesetURL$ReplaceThisFile" if $FramesetURL =~ /\w/;
	$Page =~ s/$ReplaceThisFile/$ENV{QUERY_STRING}/sig;
}
print "Content-Type: text/html\n\n$Page";
Súbelo a tu servidor y dale permisos 755.

Imaginemos que tienes un frameset, index.html, que incluye dos archivos, menu.html y home.html, algo así:

Código:
<frameset cols="175,*">
<frame src="http://www.tusitio.com/menu.html" name="menu">
<frame src="http://www.tusitio.com/home.html" name="main">
</frameset>
Importante: debes escribir la ruta completa de menu.html y home.html, con http:// tal y como lo he puesto yo.

Se supone que cuando desde un buscador se llame a un archivo cualquiera, por ejemplo, foro.html, se debe abrir el frameset index.html incluyendo menu.html y sustituyendo home.html por foro.html, ¿no? Pués para eso debes incluir este código en la cabecera (head) de foro.html (y en todos los que quieras que se abran sobre home.html):

sigue...