<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ajaxman &#187; Modrewrite</title>
	<atom:link href="http://www.ajaxman.net/category/modrewrite/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ajaxman.net</link>
	<description>Servicios Web, Desarrollo de aplicaciones, tutoriales sobre software</description>
	<lastBuildDate>Sun, 01 Apr 2012 06:18:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Modrewrite Parte 1</title>
		<link>http://www.ajaxman.net/modrewrite-parte-1.html</link>
		<comments>http://www.ajaxman.net/modrewrite-parte-1.html#comments</comments>
		<pubDate>Fri, 21 Sep 2007 16:23:02 +0000</pubDate>
		<dc:creator>ajaxman</dc:creator>
				<category><![CDATA[Ajaxman]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Manuales]]></category>
		<category><![CDATA[Modrewrite]]></category>

		<guid isPermaLink="false">http://www.ajaxman.net/269/modrewrite-parte-1/</guid>
		<description><![CDATA[<p>Recientemente tuve problemas con los permalinks, el modrewrite y el .htaccess, y poste una solución de este tema (con wordpress). Sin embargo me surgió una duda, que pasa si ustedes desean aplicar modrewrite a un sitio web que no utilice wordpress como motor CMS, sin no construida directamente sobre php o alguna otra plataforma. Resumiendo [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<p>Recientemente tuve problemas con los permalinks, el modrewrite y el .htaccess, y poste una solución de este tema (con wordpress).</p>
<p>Sin embargo me surgió una duda, que  pasa si ustedes desean aplicar modrewrite a un sitio web que no utilice wordpress como motor CMS, sin no construida directamente sobre php o alguna otra plataforma.</p>
<p>Resumiendo los pasos vamos a aprender a usar modrewrite lo mejor que podamos, por cierto voy a basarme en un articulo que hace tiempo publico IBM <strike>No apache</strike> que esta muy bueno, digamos que hare una especie de traduccion y tambien mejora de ese articulo.</p>
<p>Bueno ya vayamos al grano.</p>
<p><strong>¿Que es MODREWRITE?</strong></p>
<p>Modrewrite es una manera es reescribir las url en formas mas amigables tanto como para el usuario, como para que los buscadores nos indexen mejor.</p>
<p>Imaginemos el siguiente ejemplo, tenemos la siguiente direccion</p>
<blockquote><p> www.miweb.com/index.php?articulo=12<br />
www.miweb.com/index.php?articulo=11<br />
www.miweb.com/index.php?articulo=15</p></blockquote>
<p>Para todos seria difícil recordar cual articulo nos gusto ademas de que los buscadores como google quizá, pensarían que se trata de una sola pagina y no de 3 diferentes.</p>
<p>Sin duda se vería mejor de la siguiente manera.</p>
<blockquote><p>www.miweb.com/articulo/12/javascript<br />
www.miweb.com/articulo/11/xul<br />
www.miweb.com/articulo/15/python</p></blockquote>
<p>Bueno pues de esto trata modrewrite, ahora veamos como empezar a implementarlo.</p>
<p><span class="imp">En estos ejemplos usare Apache y Php y expresiones regulares</span></p>
<p>Si no saben expresiones regulares no se preocupen yo les ayudare.</p>
<p><span class="nocommentsadd">Es recomendable que lo hagan lo puedan hacer con Vhost, pero no necesario</span></p>
<p>Empecemos</p>
<p><strong>Primero hay que activar el modulo en el servidor apache</strong><br />
<span id="more-269"></span></p>
<p>Esto se hace desde el httpd.conf el cual normalmente lo encontraremos en linux debe de estar en  <strong>/etc/apache2/httpd.conf</strong> y en windows en <strong>C:Archivos de programaApache Software FoundationApache2.2confhttpd.conf</strong>.</p>
<p>Buscamos la siguientes lineas<br />
[source:java]<br />
# Dynamic Shared Object (DSO) Support<br />
#<br />
# To be able to use the functionality of a module which was built as a DSO you<br />
# have to place corresponding <code>LoadModule' lines at this location so the<br />
# directives contained in it are actually available _before_ they are used.<br />
# Statically compiled modules (those listed by </code>httpd -l&#8217;) do not need<br />
# to be loaded here.<br />
#<br />
# Example:<br />
# LoadModule foo_module modules/mod_foo.so<br />
#<br />
&#8230;&#8230;<br />
[/source]</p>
<p>Hay una lista de modulos, para usarlos simplemente descomenten el modulo y reinicien apache</p>
<p>[source:java]<br />
#LoadModule rewrite_module modules/mod_rewrite.so #esta asi<br />
&#8230;&#8230;.<br />
&#8230;&#8230;..<br />
LoadModule rewrite_module modules/mod_rewrite.so #Quedaria asi<br />
&#8230;&#8230;<br />
[/source]</p>
<p>Reiniciamos apache, y listo con esto ya tendremos cargado el modulo</p>
<p>Ahora hagamos una prueba hagamos el siguiente archivo ejemplo.php</p>
<p>[source:php]<br />
var_dump($_GET);// nos permitira saber que variables recibimos por get</p>
<p>?&gt;<br />
[/source]</p>
<p>y lo guardamos en nuestro DocummentRoot, para ver que funciona vamos a nuestro navegador y teclamos al siguiente direccion</p>
<p><strong>http://localhost/ejemplo.php?id=154</strong>, el Id es cualquiera</p>
<p>Y veremos algo asi.</p>
<p>[source:php]<br />
&#8230;<br />
array(1) { ["id"]=>  string(3) &#8220;145&#8243; }<br />
&#8230;<br />
[/source]</p>
<p>Ahora hacemos nuestras reglas de mod rewrite las cuales se agregan a nuestro httpd.conf dentro de la siguientes lineas</p>
<p>[source:java]<br />
<directory><br />
..<br />
&#8230;<br />
&#8230;<br />
</directory><br />
[/source]</p>
<p>y Agregamos lo siguiente</p>
<p><strong>RewriteEngine On</strong></p>
<p><strong>RewriteRule /articulo/12/javascript/$ /ejemplo.php?Id=12<br />
RewriteRule /articulo/11/xul/$ /ejemplo.php?Id=11<br />
RewriteRule /articulo/15/python$ /ejemplo.php?Id=15<br />
</strong></p>
<p>Veamos que significa la primer linea</p>
<p><strong>RewriteEngine On</strong>, con esto le decimos que el modrewrite se ponga en modo activo, si no ponemos esta linea pues simplemente no podran usar modrewrite.</p>
<p><strong>RewriteRule /articulo/12/javascript/$ /ejemplo.php?Id=12</strong>, Con esto decimos todo lo que recibas con la dirección<br />
<strong>/articulo/12/javascript/</strong>  mandalo a <strong>/ejemplo.php?Id=12</strong>, y listo el signo de pesos, es para indicar el fin de la regla.</p>
<p>Sin embargo que ¿pasaría si tenemos 500 ó mas artículos? imagínense tener que copiar todo,</p>
<p>Entonces tenemos que recurrir a las expresiones regulares, por hoy no las tocaremos a fondo, simplemente las ocuparemos esporadicamente, veamos como.</p>
<p>Formemos la expresión regular.</p>
<ul>
<li> Usaremos le numero para indicarle que id es el que necesita, el texto de momento no nos importa.</li>
<li>  Hay que decirle que todo lo que reciba que sean números no guarde en una variable</li>
<li>  Tambien hay que indicarle que pueden ser varios números</li>
</ul>
<p>Para indicarle que pueden ser números hay que hacerlo de la siguiente forma [0-9], le decimos que pueden ser de cero a nueve, lo mismo aplica para las letras, solo que en ese caso hay que decirle si son mayusculas o minusculas, y ademas le especificamos que puede repetirse una o mas veces un numero de la siguiente forma  [0-9]+ y por ultimo para guardarlo en una variable, lo encerramos entre paréntesis y quedaría así ([0-9]+)</p>
<p>Y por ultimo para pasárselo a nuestro link real lo pasamos mediante un signo de pesos seguido del numero de variable.<br />
Entonces quedaría así.</p>
<p><strong>RewriteRule /articulo/([a-9]+)/([a-zA-Z]+)/$ /ejemplo.php?Id=$1</strong></p>
<p>La segunda variable que esta entre parentesis, no la ocupamos es simplemente para que nos quede mejor,  de esta forma nos quedaría nuestro modrewrite de asi.</p>
<p>[source:java]<br />
&#8230;..<br />
RewriteEngine On</p>
<p>RewriteRule /articulo/([a-9]+)/([a-zA-Z]+)/$ /ejemplo.php?Id=$1<br />
&#8230;<br />
[/source]</p>
<p>Listo, ya estamos usando modrewrite, por cierto recuerden guardar el archivo httpd.conf y reiniciar el apache cada vez que hagan un cambio, cualquier duda déjenla en los comentarios con gusto las responderé.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxman.net/modrewrite-parte-1.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Permalinks y una solucion</title>
		<link>http://www.ajaxman.net/permalinks-y-una-solucion.html</link>
		<comments>http://www.ajaxman.net/permalinks-y-una-solucion.html#comments</comments>
		<pubDate>Tue, 11 Sep 2007 18:31:12 +0000</pubDate>
		<dc:creator>ajaxman</dc:creator>
				<category><![CDATA[Ajaxman]]></category>
		<category><![CDATA[Manuales]]></category>
		<category><![CDATA[Modrewrite]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.ajaxman.net/256/permalinks-y-una-solucion/</guid>
		<description><![CDATA[<p>Hace rato me envió un mail el seraphinux, sobre un como hacer un cambio a permalinks en el modrewrite. En teoría es fácil, sin embargo en algunos hostings, pueden haber deshabilitado la lectura del archivo .htaccess y cambiar los permalinks nos dará un verdadero dolor de cabeza, si no checamos la solución correcta, a continuación [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<p>Hace rato me envió un mail  el <a href="http://seraphinux.com/">seraphinux</a>, sobre un como hacer un cambio a permalinks en el modrewrite.</p>
<p>En teoría es fácil, sin embargo en algunos hostings, pueden haber deshabilitado la lectura del archivo <strong>.htaccess</strong> y cambiar los permalinks nos dará un verdadero dolor de cabeza, si no checamos la solución correcta, a continuación describo una solución que encontré.</p>
<p>Resulta que cuando le decimos a wordpress que utilice permalinks, crea un archivo <strong>.Htacces</strong>, sin embargo como no se puede leer, te genera problemas, inclusive se puede caer tu sitio web.</p>
<p>Entonces  es necesario hacerlo manualmente el cambio de los permalinks y de las reglas del modrewrite.<br />
<strong><br />
Las reglas del modrewrite se pueden agregar en un Vhost,  por ejemplo o decirle a nuestro administrador que las agrege a nuestro Vhost</strong></p>
<p>Sin embargo cuando uno decidas que estructura de permalinks usar, debemos hacer los cambios desde la base de datos, <strong> no donde dice permalinks dentro de las opciones de wordpress</strong>.</p>
<p>En la base de datos de nuestro wordpress, debe de haber una tabla que se llama<br />
<strong><br />
WP_options</strong> buscan el campo  <strong>option name</strong> y localizan el valor <strong>permalinks_structure</strong>, en ese registro checan el contenido de <strong>option value</strong>, por default esta vacio ahi es donde debes de decirle que estructura usaras.</p>
<p><span class="imp">La mia es /%post_id%/%postname%/ </span></p>
<p>Le puedes poner alguna de estas.</p>
<p><strong>Estructura de las Etiquetas</strong></p>
<p><span id="more-256"></span></p>
<blockquote><p>%year%</p>
<p>El año de la entrada, 4 dígitos, por ejemplo 2004</p>
<p>%monthnum%</p>
<p>Mes del año, por ejemplo 05</p>
<p>%day%</p>
<p>Dí­a del mes, por ejemplo 28</p>
<p>%hour%</p>
<p>Hora del dí­a, por ejemplo 15</p>
<p>%minute%</p>
<p>Minuto de la hora, por ejemplo 43</p>
<p>%second%</p>
<p>Segundo del minuto, por ejemplo 33</p>
<p>%postname%</p>
<p>Una versión limpia del título de la entrada. Entonces ¡Esta es una gran Entrada! se convierte en &#8220;esta-es-una-gran-entrada&#8221; en el URI (ver nota debajo)</p>
<p>%post_id%</p>
<p>El número de ID único de la entrada, por ejemplo 423</p>
<p>%category%</p>
<p>Una versión limpia del nombre de la categorí­a.</p>
<p>%author%</p>
<p>Una versión limpia del nombre del autor.</p>
<p>Estos tipos de permalinks trabajan sobre la mayor parte de sistemas sin ningún problema, pero en algunas condiciones todavía ocurren problemas.</p>
<p>Nota</p>
<p>si usa solamente %postname% :Si utiliza postname como el único elemento en sus permalinks para crear una estructura como miblog.com/titulo-de-la-entrada , &gt;, las reglas de reescritura puede hacer imposible el acceso a paginas como su hoja de estilo (si tiene un formato similar) o la carpeta wp-admin. Es mejor incluir algunos datos numeros (e.j. el ID de la entrada o la fecha) en el permalink para prevenir que esto pueda pasar. Adicionalmente, WordPress v1.2.x requiere el uso de una estructura de fechas en orden de ciertas funciones, como es el calendario, para funcionar apropiadamente. /%year%/%monthnum%/%day%/%postname%/ es siempre un buen inicio.</p></blockquote>
<p>Pero yo tuve un problema se supone que la estructura del modrewrite qque normalmente se usa es esta:</p>
<p>[source:php]<br />
<ifmodule><br />
RewriteEngine On<br />
RewriteBase /<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteRule . /index.php [L]<br />
</ifmodule><br />
[/source]</p>
<p>Pero no  me funciono, asi que tuve que hacer mis propias reglas de mod_rewrite.</p>
<p>Ejemplo:</p>
<p>Los post los manejo asi</p>
<p>[source:php]</p>
<p>#posts<br />
RewriteRule /([0-9]+)/(.*)/$ /index.php?p=$1</p>
<p>[/source]</p>
<p>Les apunto algunas variables se usan para recibir los datos por get, usando modrewrite</p>
<ul>
<li>category_name = es el nombre de la categoria</li>
<li> page_id =  es el id de cada una de nuestras paginas</li>
<li>m = es la fecha y puede recibir , solo el año (0000), o agregarle el mes (00)  o si queremos hasta el dia (00)</li>
<li>paged= es el numero de la pagina</li>
</ul>
<p>Ejemplo</p>
<p>Para paginar una busqueda por categorias se usaria asi</p>
<p>[source:php]</p>
<p>RewriteRule ^/category/(.*)/page/([0-9]+)/$ /index.php?category_name=$1&amp;paged=$2</p>
<p>[/source]</p>
<p>Por cierto hay una opcion que sin usar modrewrite puedes tener permalinks, deben de tener la siguiente estructura.</p>
<p>[source:php]</p>
<p>/index.php/%algo%/%otracosa%/%pata%/</p>
<p>#o esta</p>
<p>/index.php/%post_id%/%post_name%/</p>
<p>[/source]</p>
<p>Significa que le debes de especificarle la pagina index.php y después cualquiera de las opciones que estan listadas arriba, <strong>haganlo desde la base de datos</strong>. y no hay es necesario usar modrewrite,</p>
<p><strong>Pero recuerden no hacerlo desde el wp-admin de wordpress, excepto si vas a usarla opción en la que incluyas index.php, ya que tu blog puede quedar inaccesible.</strong></p>
<p>Pueden checar mas documentación  de wordpress vía | <a href="http://codex.wordpress.org/es:Using_Permalinks">http://codex.wordpress.org/es:Using_Permalinks</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxman.net/permalinks-y-una-solucion.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Otra vez los permalinks</title>
		<link>http://www.ajaxman.net/otra-vez-los-permalinks.html</link>
		<comments>http://www.ajaxman.net/otra-vez-los-permalinks.html#comments</comments>
		<pubDate>Wed, 05 Sep 2007 14:28:57 +0000</pubDate>
		<dc:creator>ajaxman</dc:creator>
				<category><![CDATA[Ajaxman]]></category>
		<category><![CDATA[Modrewrite]]></category>
		<category><![CDATA[No puede ser]]></category>
		<category><![CDATA[Noticias]]></category>

		<guid isPermaLink="false">http://www.ajaxman.net/index.php/235/otra-vez-los-permalinks/</guid>
		<description><![CDATA[<p>Si lo pudieron notar ayer nuevamente me peleé con los permalinks, seguí la estructura que indica wordpress pero no queda, asi que de momento los links, han sufrido un cambio, no crean que me olvide de escribir, solo que últimamente he querido mejorar el blog, parta beneficio de todos los lectores. Estoy creando unos buenos [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<p>Si lo pudieron notar ayer nuevamente me peleé con los permalinks, seguí la estructura que indica wordpress pero no queda, asi que de momento los links, han sufrido un cambio, no crean que me olvide de escribir, solo que últimamente he querido mejorar el blog, parta beneficio de todos los lectores.</p>
<p>Estoy creando unos buenos tutoriales sobre divs, ajax y javascript, además si no tengo contratiempos, muy pronto iniciare con la guia de preparación para el examen de certificación en Linux nivel 1 LPIC 101y 102, que como se han de imaginar estara disponible capitulo por capitulo, en el blog.</p>
<p>Bueno lo de los links como les dije ha cambiado un poco, vere si le puedo implementar bien los permalinks, de momento son algo asi</p>
<p><span class="nocommentsadd"><a href="http://www.ajaxman.net/index.php/233/uso-de-operadores-ternarios-en-javascript/">http://www.ajaxman.net/index.php/233/uso-de-operadores-ternarios-en-javascript/</a></span></p>
<p>ó</p>
<p><span class="nocommentsadd"><a href="http://www.ajaxman.net/index.php/category/ajaxman/">http://www.ajaxman.net/index.php/category/ajaxman/</a></span></p>
<p>Tratare de cambiarlo para que quede asi.</p>
<p><span class="nocommentsadd"><a href="http://www.ajaxman.net/index.php/233/uso-de-operadores-ternarios-en-javascript/">http://www.ajaxman.net/233/uso-de-operadores-ternarios-en-javascript/</a></span></p>
<p>Le quitare el index,  pero por hoy quedemonos asi, saludos&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxman.net/otra-vez-los-permalinks.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Served from: www.ajaxman.net @ 2012-05-21 19:07:43 -->
