Foros del Web » Administración de Sistemas » Apache »

Problemas al configurar .htaccess

Estas en el tema de Problemas al configurar .htaccess en el foro de Apache en Foros del Web. Hola, Voy al grano, estoy haciendo una pagina en php y necesito usar el .htacces pero les cuento que tengo problemas al momento de hacerlo ...
  #1 (permalink)  
Antiguo 10/11/2011, 13:23
Avatar de BekoxD  
Fecha de Ingreso: mayo-2008
Ubicación: Perú
Mensajes: 220
Antigüedad: 15 años, 10 meses
Puntos: 11
Exclamación Problemas al configurar .htaccess

Hola,
Voy al grano, estoy haciendo una pagina en php y necesito usar el .htacces pero les cuento que tengo problemas al momento de hacerlo funcionar en mi web.
El codigo que estoy usando es esto, el problema que tengo es que nw.php?id=$1 se transforma en miweb.com/12/ eso esta perfectamente, pero el problema es en en tops.php, necesito que se transforme en miweb.com/tops/ pero el error es que cuando escribo en el navegador me muestra el contenido de nw.php pero con la url miweb.com/tops/.
Código:
	 RewriteBase /      
         RewriteEngine on
  	 Rewriterule ^(.*)/ nw.php?id=$1
	 Rewriterule ^tops/(.*) tops.php
	  	 	  
	 ## USER IP BANNING
<Limit GET POST>
 order allow,deny
 allow from all
</Limit>
 
AddDefaultCharset UTF-8

RewriteCond %{HTTP_HOST} !^www\.miweb.com
RewriteCond %{HTTP_HOST} ^([^.]+)\.miweb.com
RewriteRule ^$ ?id=%1&%{QUERY_STRING} [L,NC]

<FilesMatch "\.(htaccess|htpasswd|ini|log|inc)$">
Order Allow,Deny
Deny from all
</FilesMatch>

ErrorDocument 404 http://miweb.com
Por favor si fueran amables de hecharme una mano.
Saludos y gracias
Beko
__________________
Si tú sabes lo que vales, ve y consigue lo que mereces.
  #2 (permalink)  
Antiguo 10/11/2011, 14:16
Avatar de charlyalegret  
Fecha de Ingreso: septiembre-2011
Ubicación: Barcelona
Mensajes: 705
Antigüedad: 12 años, 6 meses
Puntos: 140
Respuesta: Problemas al configurar .htaccess

El problema que tienes es que cuando escribes miweb/tops/, cumple la primera regla, por lo que se transforma en miweb/nw.php?id=tops
Prueba de poner las reglas alrevés, de esta manera:

Rewriterule ^tops/(.*) tops.php [L]
Rewriterule ^(.*)/ nw.php?id=$1

Si pones miweb/12/ no cumplirá la primer regla pero sí la segunda: Ok
Si pones miweb/tops/ cumple la primera regla, es decir lee miweb/tops.php
debes incluir una L para que no siga y pase a por la segunda regla, que también la cumpliría.

Lo que no tengo muy claro es porqué pones: Rewriterule ^tops/(.*) tops.php ---> si pones eso, te aceptará como buena miweb/tops/loquesea, de manera que google te puede banear por contenido duplicado: si no quieres pasar variables ni nada, mejor sería escribir:

Rewriterule ^tops/$ tops.php

Saludos
  #3 (permalink)  
Antiguo 10/11/2011, 15:13
Avatar de BekoxD  
Fecha de Ingreso: mayo-2008
Ubicación: Perú
Mensajes: 220
Antigüedad: 15 años, 10 meses
Puntos: 11
Respuesta: Problemas al configurar .htaccess

Genia @charlyalegret muchas gracias resolvi con tu codigo parte de mi web, ahora tengo una pequeña consulta sobre mi paginador por el momento se muestra asi:

muestra asi miweb.com/tops/?page=2 miweb.com/tops/?page=3 etc.
y por favor necesito que se muestre asi:

miweb.com/tops/2/ miweb.com/tops/3/ miweb.com/tops/4/ etc.

Dejo un trozo de código que uso en el php se muestra.


Código:
....
if($page>1){
$anterior = $page-1;
echo "<a href=\"tops/?page=$anterior\">« Pagina anterior</a>";

}
 if ($totpages == 0) { $totpages = 1; }
$siguiente = $page+1;
if($siguiente<=$totpages){

echo "<a href=\"tops/?page=$siguiente\"> Siguiente pagina » </a>";
...
se ve claramente en ?page=$ pero e intentando varias formas pero no da, ose si normal la pagina responde miweb.com/tops/2/ etc, pero solo se muestra las entradas de miweb.com/tops/1/ .

Saludos y muchas gracias por su ayuda.
Beko
__________________
Si tú sabes lo que vales, ve y consigue lo que mereces.

Última edición por BekoxD; 10/11/2011 a las 15:31
  #4 (permalink)  
Antiguo 11/11/2011, 12:19
Avatar de charlyalegret  
Fecha de Ingreso: septiembre-2011
Ubicación: Barcelona
Mensajes: 705
Antigüedad: 12 años, 6 meses
Puntos: 140
Respuesta: Problemas al configurar .htaccess

Hola,

No he entendido muy bien el problema...

Si quieres que miweb.com/tops.php?page=numero se muestre como miweb.com/tops/numero/
La regla sería:

Rewriterule ^tops/([0-9]*)/$ tops.php?page=$1 [L]

Por otro lado, creo que deberías usar la url amigables dentro del código html/php, si no te arriesgas a que google siga las url "no amigables" y las amigables, y te penalice por contenido duplicado...
  #5 (permalink)  
Antiguo 11/11/2011, 16:03
Avatar de BekoxD  
Fecha de Ingreso: mayo-2008
Ubicación: Perú
Mensajes: 220
Antigüedad: 15 años, 10 meses
Puntos: 11
Respuesta: Problemas al configurar .htaccess

Gracias @charlyalegret el problema esque normal ya funciona miweb.com/tops/numero/ pero se sigue mostrando el mismo resultado de la pagina /1/...., osea el resultado de "1" sigue mostrando en /2/ en todas ¿crees que puede ser por la programación?

Saludos.
__________________
Si tú sabes lo que vales, ve y consigue lo que mereces.
  #6 (permalink)  
Antiguo 11/11/2011, 16:22
Avatar de charlyalegret  
Fecha de Ingreso: septiembre-2011
Ubicación: Barcelona
Mensajes: 705
Antigüedad: 12 años, 6 meses
Puntos: 140
Respuesta: Problemas al configurar .htaccess

Y que regla tienes?
Es decir, si tienes

Rewriterule ^tops/(.*) tops.php [L]

Pues es normal, ya que como te comenté más arriba, si enlazas "tops/?page=$siguiente", la regla siempre te llevará a tops.php.
Si ese es el problema, prueba la regla que te comenté antes...
  #7 (permalink)  
Antiguo 17/11/2011, 10:39
Avatar de BekoxD  
Fecha de Ingreso: mayo-2008
Ubicación: Perú
Mensajes: 220
Antigüedad: 15 años, 10 meses
Puntos: 11
Respuesta: Problemas al configurar .htaccess

Estoy usando esta regla ¿sera correcto?

Rewriterule ^tops/(.*) tops.php [L]
Rewriterule ^tops/([0-9]*)/$ tops.php?page=$ [L]
__________________
Si tú sabes lo que vales, ve y consigue lo que mereces.

Etiquetas: .htaccess, php
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 03:34.