Comenzando a programar una web
A continuación lo que vamos a hacer es convertir páginas dinámicas en estáticas.
Las páginas dinámicas, como las hechas en PHP, pueden variar su contenido de un mismo archivo. Generalmente por variables enviadas por GET, es decir, explícitas en la URL. Un ejemplo:
ttp://zumbe.net/tutoriales/?t=19
En ese caso estamos accediendo a la noticia 19, porque en el script de PHP puede accederse a esa variable
Pero esto no gusta a los Buscadores, ya que los resultados de búsqueda que ellos muestran podrían no corresponderse a la dirección , ya que es susceptible de cambiar en cualquier momento. Y eso a los buscadores les da mal rollo.
Para crear el archivo .htaccess no necesitamos ninguna herramienta especial ni nada sofisticado, con el bloc de notas o cualquier herramienta parecida bastará.
La primera línea que tenemos que insertar es la que indica que vamos a usar MOD_REWRITE y lo habilita.
Y ahora vamos a poner nuestras normas para las URL, usando instrucciones Rewriterule. Para ello usaremos expresiones regulares
^ : Comienzo de una cadena
$ : Fin de una cadena
(.*) : Cualquier texto
Imaginemos que quiero que a un directorio cuando se escriba noticia/2.html se dirija a noticia.php?n=2
Nos bastaría con incluir en nuestro archivo .htaccess la siguiente línea:
Voy a explicar paso a paso lo que pone en esa línea:
Y ya está.
Podemos tener un archivo .htaccess en cada carpeta o directorio, con diferentes órdenes.
Si queremos usar más de una variable en las URL, sólo tenemos que usar diferentes paréntesis, y para hacerles referencia usar el número que ocupan como nombre de variable. Ejemplo:
Este es el archivo .htaccess que uso actualmente para la sección de tutoriales:
Referencia: http://www.peoplecnc.com/mod_rewrite_basico.html
3 Agosto 2006 · Tags Estándares, Sin categoría |
Mi pregunta es: en esta seccion: “Rewriterule ^cat-(.*)\.html$ index.php?s=$1″ como verificas el valor de s ??
Acaso se hace dentro del archivo index.php, un isset($_GET[’s’]) ??
Si con verificar te refieres a comprobar que no está vacío, puedes hacerlo de muchas formas. Las más recomendables:
if(!empty($_GET[’s’])){ … instrucciones; }
if($_GET[’s’]) { …instrucciones; }
if($_GET[’s’] != ”){ …instrucciones; }
Cada comprobación cambia con un pequeño matiz, pero vienen a comportarse igual.
[…] La verdad no pille la forma de explicar esta opcion de .htaccess asi que les hago referencia a un tutorial que les puede explicar este tema mas ampliamente.Tutoriales Zumbe […]
¿ésto funciona con caracteres latinos?
áéíóúú ÁÉÍÓÚ ¡¿
Esta excelente tu explicación la voy a probar.. mi caso es que quiero dar a cada miembro de la comunidad creandose un subdominio (su página web promocional) el hosting me da ilimitado, el asunto es que a la direccion miembro.midominio.com llega a un index.html en la carpeta creada por cpanel pero necesito redireccionar a otra página en otras carpetas y no se como enviar la variable $vali, creo que tu explicación esta clara gracias por tus enseñanzas, otra cosa si se puede pedir, puedo crear los subdominios sin recurrir a mi cpanel, es decir con algun script php?
Jaime Mongrut Farro
Hola Jaime.
Que yo sepa no es posible, pero no sabría asegurártelo.
Hola nuevamente, si escribo en la barra miembro.midominio.com el se dirige al index.html que tengo en /html_public/miembro o al .htacces gracias
Jaime Mongrut Farro
www.lareddorada.com
Gracias admin… y sobre la última…
Jaime Mongrut
Hola…es posible redireccionar a alguna pagina escribiendo por ejemplo: www.pagina.com/miscosas, donde me tome “miscosas” como el valor para redireccionar? Lo que no se como hacer es que no me tome en cuenta los directorios o archivos existentes. Se entiende? si podes me escribis al mail? Gracias…
mmm… a mi me ha fallado un poco:
Rewriterule ^(.*)\.html$ index.php?section=$1 [L,QSA]
* me devuelve un error 404 (como si realmente existiera el archivo html)
¿como hago para evitarlo y que funcione correctamente? ¿que hay que cambiar? ¿Apache? ¿ideas?
[…] asi que les hago referencia a un tutorial que les puede explicar este tema mas ampliamente.Tutoriales Zumbe Escrito el 3 de January, 2008 Categoria: Tutorial General Webdevelopment Feed de […]
q ocurre si pongo mi .htaccess en mi directorio principal? es decir cuando ponga. www.dominio.com/contacto.php, NO QUIERO Q SE DIRIJA A www.dominio.com/porfiles.php?id=CONTACTO.PHP
[…] más clara de entender. Esta no pretende ser una guía muy extensa del mod_rewrite, si quieres ampliar información puedes verla en la Wikipedia y el sitio de Apache, así como las directivas de […]
hola estoy creando un script de fotolog multiusuario y no me funciona ningun tipo de .htaccess por que siempre tengo que crear carpetas diferentes y me dicen que eso es muy malo para el servidor que se pondra muy lento y todo eso y quiero saber como hacer parano crear carpetas cualquier cosa a gabriel_taltal@hotmail.com
Gabriel, tendrás que definir mejor tu pregunta.
Si quieres usar .htaccess puedes leer este tutorial, o buscar similares.
Si tu server no te permite crear .htaccess, habla con tu hosting, cámbiate de hosting, o resignate.
Un saludo.
Muy buenas. Tengo una pequeña duda.
Tengo implementado el mod_rewrite en mi web:
http://www.alquiberia.es
Pero tengo un problema cuando supero las 10 variables. Todo funciona perfectamente mientras no supere las 10 variables.
Por ejemplo:
Rewriterule ^([^/]+)-([^/]+)/([^/]+)-([^/]+)/([^/]+)-([^/]+)/([^/]+)-([^/]+)\.html$ index.php?$1=$2&$3=$4&$5=$6&$7=$8 [NC,L]
Funciona perfectamente pero si supero las 9 variables falla y mezcla el valor de las variables.
Alguna sugerencia???
Gracias
[…] Tutorial Mod Rewrite […]
hola, mi problema es este..
estoy haciendo una comunidad de usuarios, y qe tengan perfiles cada uno..
para ver los perfiles de cada usuario tenes que escribir esto:
http://localhost/profile.php?ID=chikocupado
o
http://localhost/profile.php?ID=1
yo lo que quiero hacer es que cuando se escriba:
http://localhost/chikocupado
entre al perfil..
como tendria que escribir el .htaccess
asi esta mi .htaccess :
php_flag register_globals Off
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .+ - [L]
RewriteRule ^([A-Za-z0-9_-]+)$ profile.php?ID=$1 [QSA,L]
——-
desde ya muchas gracias ![]()
hola yo tengo un problemota tengo un sistema a la hora de hacer mis paginas las guarde todas con extension .php y estoy usano el vertrigo entonces de manera local en mi computadora me corre bien ya hace todo lo que quiero el sistema pero a la hora de subirlo alservidor de la escuela no puedo hacceder por que el codigo html que tengo en mi pagina php no lo abre por que debe de estar en html que puedo hacer si alguin sabe me seria de mucha ayuda mi mail es yair_bls@hotmail.com
Excelete aporte el de lean. Ahora, digo yo… será posible que en vez de redirigir http://escribe.us/carpeta redirigir http://carpeta.escribe.us ? Muchas gracias!
He visto que utilizar la barra en algunos casos da problemas, generalmente en las ultimas versiones de apache, sustituyendolo por un guión funciona perfectamente. No he encontrado información sobre el tema. Alguen sabe algo?