Foros del Web » Programando para Internet » PHP »

Intentando hacer un CMS - Preguntas

Estas en el tema de Intentando hacer un CMS - Preguntas en el foro de PHP en Foros del Web. Hola, Estoy haciendo una especie de CMS y tengo alguna que otra duda. Pues tengo un archivo .htacess donde en el pongo Cita: Options +FollowSymLinks ...
  #1 (permalink)  
Antiguo 28/12/2008, 13:56
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 16 años, 11 meses
Puntos: 4
Pregunta Intentando hacer un CMS - Preguntas

Hola,

Estoy haciendo una especie de CMS y tengo alguna que otra duda. Pues tengo un archivo .htacess donde en el pongo

Cita:
Options +FollowSymLinks
RewriteEngine On
RewriteBase /joni-search/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([^/]*)/([^/]*)/([^/]*)\.htm$ index2.php?idioma=$1&m=$2&b=$3 [L]
RewriteRule ^([^/]*)/([^/]*)\.htm$ index2.php?idioma=$1&b=$2 [L]
Es decir, un redireccionamiento. El problema es que tengo que poner
RewriteBase /joni-search/

entonces, si alguien descarga el CMS y lo quiere subir a otra carpeta que no sea /joni-search/ pues tendrá que cambiar rewritebase. He visto el htaccess en CMS profesionales y poniendo rewritebase / funciona igualmente, además el código en el htacess es más complejo. Bueno, pues después de hacer eso, para recoger las variables que hay "extra", por ejemplo:

/es/imagenes/toro.html?var=1

la variable $_GET['var'] no se puede obtener por PHP en la dirección que he puesto, por eso, hice un pequeño algoritmo para arreglarlo, además, para redireccionar las url "no seo" a "seo" (S = "/"):

Código PHP:
<?php

DEFINED
('ENTRADO') or die("Acceso restringido");
    
$a substr($_SERVER['REQUEST_URI'],17);
$pos strlen(PATH) + 4;

$redirec "?";

if (
strpos($a,"?") !== false && (strpos($a,"?") > strpos($a,S) || strpos($a,S) === false) && !$_GET['frame'] && strpos(substr($_SERVER['REQUEST_URI'],0,$pos),"?") === false && strpos(substr($_SERVER['REQUEST_URI'],0,$pos),"&") === false) {
    
$a substr($a,strpos($a,"?") + 1);
    
$a explode("&",$a);
    foreach (
$a as $aa) {
        
$aa explode("=",$aa);
        
$_GET[$aa[0]] = $aa[1];
        if ((
$aa[0] == "b" || $aa[0] == "buscar") && $aa[1]) { $error1 1; }
        elseif ((
$aa[0] == "m" || $aa[0] == "metodo") && $aa[1]) { $error2 1; }
        elseif (
$aa[0] && $aa[1]) { $redirec .= "&".$aa[0]."=".$aa[1]; }
    }
    
    if (
$error1) {
        if (
$redirec == "?") { unset($redirec); }
        else { 
$redirec str_replace("?&","?",$redirec); }
    
        if (
$error2) { 
            
header("HTTP/1.1 301");
            
header ("location: ".HTML.$_GET['idioma'].S.$m.S.$b.".htm".$redirec);
        }
        else {
            
header("HTTP/1.1 301");
            
header ("location: ".HTML.$_GET['idioma'].S.$b.".htm".$redirec);
        }
    }
}
Y la última pregunta, es cómo puedo coger el path donde está el CMS, yo lo hago así, pero no sé si habrá un método mejor:

Código PHP:
<?php

DEFINE
('PHP'dirname(__FILE__).S);
DEFINE('PATH'str_replace("index2.php"""$_SERVER['SCRIPT_NAME'])); 
DEFINE('HTML'"http://".$_SERVER['HTTP_HOST'].PATH);
Donde php es la ruta completa para hacer los "include" (document_root + path), path es la carpeta donde está el CMS desde el inicio (todas las páginas en el CMS pasan por index2.php) y HTML es el "live_site", es decir, la Web más el path con http://


Si es mucho, por lo menos, puedes decirme cómo solucionar lo de rewritebase del htacess?
__________________
JoniJnm.es

Última edición por JoniJnm; 28/12/2008 a las 14:02
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 07:20.