Hola buenas! tengo un problema con "mi" htaccess
Estaba buscando como crear permalinks o urls amigables (creo que es lo mismo) para una seccion para un cliente, el inconveniente es el siguiente:
La url original es esta:
http://localhost/Ciegos/Shows ( tengo el htaccess para ocultar las extenciones)
y con get (aca esta el problema)
http://localhost/Ciegos/Shows?Pag=2 (Tengo un paginador en caso de existir Pag)
Antes de comentar el inconveniente pongo el script
Código Apache:
Ver originalRewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /Ciegos/Shows/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /Ciegos/Shows.php [L]
</IfModule>
(Debo de comentar que busque, y lei articulos sobre htaccess y no lo entiendo :S)
El problema esta en que Si entro a:
http://localhost/Ciegos/Shows/Gira-2012-en-san-bernardo
Ingresa perfecto (Seria la informacioon detallada del show)
Pero si entro a
http://localhost/Ciegos/Shows/Pag/2
Que seria la ubicacion del paginador muestra lo que seria:
http://localhost/Ciegos/Shows/
El script php
Código PHP:
Ver original<?
# --- php ini
include("ini.php");
# --- URL base de la aplicacion
$base = "http://localhost/Ciegos/";
# --- Si es un permalink
if(!(("http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'])==$base) && !(basename($_SERVER['REQUEST_URI']) == "Shows")){
# --- Obtener el slug
$slug = basename($_SERVER['REQUEST_URI']);
# --- Consulta mysql
$Consulta = $Mysql->Consulta("SELECT * FROM noticias WHERE permalink='".$slug."' LIMIT 1");
# --- Associando variable
$Campo = $Mysql->Assoc($Consulta);
echo '<div id="Noticia">';
echo '<h1>'.$Campo['titulo'].'</h1><time><img src="http://'.$_SERVER['HTTP_HOST'].'/Ciegos/Imagenes/Iconos/clock32.png" /> <span>'.$Campo['tiempo'].'</span> </time>';
echo '<img src="http://'.$_SERVER['HTTP_HOST'].'/Ciegos/Content/Noticias/'.$Campo['flyer'].'" class="Original"/>';
echo '<p>'.$Campo['informacion'].'</p>';
echo '
<div class="Social">
<iframe src="http://www.facebook.com/plugins/like.php?href=http://laentreviasrock.com/Shows/'.$Campo['permalink'].'&send=false&layout=button_count&width=125&show_faces=false&action=like&colorscheme=light&font=lucida+grande&height=20" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:125px; height:20px;" allowTransparency="true"></iframe>
<a href="https://twitter.com/share" class="twitter-share-button" data-url="http://'.$_SERVER["HTTP_HOST"].'/Shows/'.$Campo['permalink'].'" data-lang="es">Twittear</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
<!-- Inserta esta etiqueta donde quieras que aparezca Botón +1. -->
<div class="g-plusone" data-annotation="none" data-href="http://'.$_SERVER["HTTP_HOST"].'/Shows/'.$Campo['permalink'].'"></div>
<!-- Inserta esta etiqueta después de la última etiqueta de Botón +1. -->
<script type="text/javascript">
window.___gcfg = {lang: "es"};
(function() {
var po = document.createElement("script"); po.type = "text/javascript"; po.async = true;
po.src = "https://apis.google.com/js/plusone.js";
var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(po, s);
})();
</script>
</div>
';
echo '</div>';
}
if(basename($_SERVER['REQUEST_URI'])=="Shows" || isset($_GET['Pag'])){
# --- Paginacion
# --- Configuracion
$Consult = 'SELECT * FROM noticias ORDER BY id DESC';
$Reg = 5;
$Botones = 5;
$Class = 'Paginas';
# - Posicion
if(!isset($_GET['Pag']) || $_GET['Pag']<0){ // Si no Existe Pag o Es menor a 0 $Pagina = 1;
}else{
$Pagina = $Seguridad->Numero($_GET['Pag']);
}
# - Opciones
$Consulta = $Mysql->Consulta($Consult); // - Consulta que devolvera los datos
$Registros = $Reg; // - Registros a mostrar
$Intervalo = $Botones; // - Intervalo entre botones
# - Configuracion
$Cantidad = $Mysql->Reg_Num($Consulta); // - Cantidad de registros
$Desde = ($Pagina-1)*$Registros; // - Desde que registro empieza la busqueda
$Total = ceil($Cantidad/$Registros); // - Total divicion de registros y total a mostrar redondeado $Botones = ($Intervalo*2)+1; // - Bonotes que se mostraran
$i = 0; // - Necesario para los bucle for
$Func = $Pagina-$Intervalo; // - Paginas en total
$Consults = $Mysql -> Consulta($Consult.' LIMIT '.$Desde.' , '.$Registros); // - Consulta a bd con limite de reg
# - Navegacion
$Anterior = $Pagina-1;
$Siguiente = $Pagina+1;
echo '<div id="Noticias">';
# - Bucle
while($Campo = $Mysql -> Assoc($Consults)){
# --- Noticias
echo '
<div class="Noticia">
<h1>'.$Convert->Mayusculas($Campo['titulo']).'</h1> <time><img src="http://'.$_SERVER['HTTP_HOST'].'/Ciegos/Imagenes/Iconos/clock32.png" /> <span>'.$Campo['tiempo'].'</span> </time>
<i><img src="Content/Noticias/'.$Campo['flyer'].'" class="Flyer" /></i>
<p>'.$Convert->Mayusculas($Campo['informacion']).'</p> <a href="http://'.$_SERVER['HTTP_HOST'].'/Ciegos/Shows/'.$Campo['permalink'].'">[+info]</a>
<div class="Social">
<iframe src="http://www.facebook.com/plugins/like.php?href=http://laentreviasrock.com/Shows/'.$Campo['permalink'].'&send=false&layout=button_count&width=125&show_faces=false&action=like&colorscheme=light&font=lucida+grande&height=20" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:125px; height:20px;" allowTransparency="true"></iframe>
<a href="https://twitter.com/share" class="twitter-share-button" data-url="http://'.$_SERVER["HTTP_HOST"].'/Shows/'.$Campo['permalink'].'" data-lang="es">Twittear</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
<!-- Inserta esta etiqueta donde quieras que aparezca Botón +1. -->
<div class="g-plusone" data-annotation="none" data-href="http://'.$_SERVER["HTTP_HOST"].'/Shows/'.$Campo['permalink'].'"></div>
<!-- Inserta esta etiqueta después de la última etiqueta de Botón +1. -->
<script type="text/javascript">
window.___gcfg = {lang: "es"};
(function() {
var po = document.createElement("script"); po.type = "text/javascript"; po.async = true;
po.src = "https://apis.google.com/js/plusone.js";
var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(po, s);
})();
</script>
</div>
</div>';
}
# -- Empieza la Navegacion
echo '<div class="Paginacion">';
if($Total>1){
# - Boton Anterior
if($Pagina>1){
echo '<a href="?Pag='.$Anterior.'"><</a>';
}
# - Paginas
while ($i<$Botones) {
if ($Func>0 and $Func<=$Total) {
if($Func == $Pagina){
echo '<a class="Disabled">'.$Func.'</a>';
}else{
echo '<a href="?Pag='.$Func.'" class="'.$Class.'">'.$Func.'</a>';
}
$i++;
}
if($Func>$Total){
$i=$Botones;
}
$Func++;
}
/* Simple
echo $Pagina.' / '.$Total;*/
# - Boton Siguiente
if($Pagina>=1 and
$Pagina<$Total || !isset($_GET['Pag'])){ echo '<a href="?Pag='.$Siguiente.'">></a></div>';
}else{ echo '</div>'; }
}else{
echo '<div id="Aviso">'.$Mensaje.'</div></div>';
}
echo '</div>';
}
?>