Estoy haciendo una especie de CMS y tengo alguna que otra duda. Pues tengo un archivo .htacess donde en el pongo
Cita:
Es decir, un redireccionamiento. El problema es que tengo que ponerOptions +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]
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]
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);
}
}
}
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);
Si es mucho, por lo menos, puedes decirme cómo solucionar lo de rewritebase del htacess?