#+TITLE:       Reescribir URLs con mod_rewrite en Apache
#+AUTHOR:      Osiris Alejandro Gómez
#+EMAIL:       osiux@osiux.com
#+LANGUAGE:    es
#+LINK_HOME:   index.html
#+INCLUDE:     header.org
#+DATE:        2010-05-12 17:46
#+HTML_HEAD:   <meta property="og:title" content="Reescribir URLs con mod_rewrite en Apache" />
#+HTML_HEAD:   <meta property="og:type" content="article" />
#+HTML_HEAD:   <meta property="og:article:published_time" content="2010-05-12" />
#+HTML_HEAD:   <meta property="og:article:author" content="Osiris Alejandro Gómez" />
#+HTML_HEAD:   <meta property="og:url" content="https://osiux.com/apache-mod-rewrite-htaccess.html" />
#+HTML_HEAD:   <meta property="og:site_name" content="OSiUX" />
#+HTML_HEAD:   <meta property="og:locale" content="es_AR" />


** Migrando URLs

Tuve que migrar de servidor y además cambié la url de
http://blog.osiux.com a http://osiux.com.  Así que para no perder los
enlaces de otros sitios y buscadores a http://blog.osiux.com los tuve
que redireccionar manteniendo las urls anteriores hacia el nuevo
sitio.  Para hacer esto basta con crear un archivo =.htaccess= con
las reglas que definen la reescritura de la url.

** =mod-rewrite=

Es necesario habilitar el módulo de apache:

#+BEGIN_SRC sh :exports code
    a2enmod rewrite
#+END_SRC

En el =.htaccess= de http://blog.osiux.com definí lo siguiente:

#+BEGIN_EXAMPLE
    RewriteEngine On
    RewriteBase /

    RewriteRule ^/$  http://osiux.com/
    RewriteRule ^(tutorial/)$  http://osiux.com/find/$1
    #RewriteRule ^\=(.+)$  http://osiux.com/find/$1

    RewriteCond %{QUERY_STRING} s=(.*)
    RewriteRule ^(.*)$  http://osiux.com/find/%1

    RewriteRule ^(buenos-aires-libre)/$  http://osiux.com/find/$1
    RewriteRule ^200./(.+)/$  http://osiux.com/find/$1.txt
    RewriteRule ^category/(.+)/$  http://osiux.com/find/$1
    RewriteRule ^(tag)/(.+)/$  http://osiux.com/find/$2
    RewriteRule ^(.+)\.txt$  http://osiux.com/$1.txt
#+END_EXAMPLE

** Referencias

* http://www.askapache.com/htaccess/mod_rewrite-tips-and-tricks.html#default-mod-rewrite-hint
* http://www.sinctrl.com/2008/04/14/%C2%BFque-son-las-rewrite-rules/
* http://www.askapache.com/htaccess/ultimate-htaccess-file-sample.html
* http://briancray.com/2010/03/18/htaccess-hack-remove-url-query-strings/
* http://corz.org/serv/tricks/htaccess2.php