<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://carlos.rinconsanchez.com"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Blog de Carlos Rincón - redirección</title>
 <link>http://carlos.rinconsanchez.com/taxonomy/term/214/0</link>
 <description></description>
 <language>es</language>
<item>
 <title>Redireción de un dominio a otro con urls diferentes</title>
 <link>http://carlos.rinconsanchez.com/redirecion-de-un-dominio-otro-con-urls-diferentes</link>
 <description>&lt;p&gt;En &lt;a href=&quot;http://www.amatusalud.es&quot;&gt;Ama Tu Salud&lt;/a&gt;, una de las webs hecha con &lt;a href=&quot;http://drupal.org&quot;&gt;Drupal&lt;/a&gt; y &lt;a href=&quot;http://ubercart.com&quot;&gt;Ubercart&lt;/a&gt; que estamos a punto de publicar, queremos pasar la web del .com a un .es (la web se llama igual) para no perder el posicionamiento que ya tiene.&lt;/p&gt;
&lt;p&gt;Por ejemplo queremos que&lt;br /&gt;
&lt;a href=&quot;http://www.amatusalud.com/product_info.php?products_id=163&quot; title=&quot;http://www.amatusalud.com/product_info.php?products_id=163&quot;&gt;http://www.amatusalud.com/product_info.php?products_id=163&lt;/a&gt; redireccione a&lt;br /&gt;
&lt;a href=&quot;http://www.amatusalud.es/producto/stabilium-200&quot; title=&quot;http://www.amatusalud.es/producto/stabilium-200&quot;&gt;http://www.amatusalud.es/producto/stabilium-200&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Esto se podría hacer con un mod_rewrite con una línea a mano por cada redirección (ya que no siguen un patrón común que pueda usar) pero por algún motivo no he logrado hacerlo bien. Lo que yo usaba era:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
Options +FollowSymLinks&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{HTTP_HOST} ^amatusalud.com [NC]&lt;br /&gt;
RewriteRule ^product_info.php?products_id=163$ &lt;a href=&quot;http://www.amatusalud.es/producto/stabilium-200&quot; title=&quot;http://www.amatusalud.es/producto/stabilium-200&quot;&gt;http://www.amatusalud.es/producto/stabilium-200&lt;/a&gt; [L,R=301]&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Con esto he probado mil cosas,, ponerle una / al principio de la url, quitarle la condición, cambiar el destino y poner uno del .com (bueno, mil cosas no han sido) &lt;/p&gt;
&lt;p&gt;Pero cómo ya he comentado no me ha funcionado (algo debe estar mal). De todas maneras esto tenía el problema de que dependiendo de las redirecciones el .htaccess se puede hacer demasiado largo aunque tampoco tengo muy claro que grave podría ser esto.&lt;/p&gt;
&lt;p&gt;Cómo alternativa &lt;a href=&quot;http://iconsulting.com.es/&quot;&gt;propusieron&lt;/a&gt; gestionarlo mediante un fichero php que se encarga de hacer las redirecciones según la página solicitada. &lt;/p&gt;
&lt;p&gt;Para esto lo primero que hay que hacer es conseguir que todas las solicitudes vayan al fichero en php que hace la redirección. Para esto ponemos en el .htaccess:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;  RewriteEngine on&lt;br /&gt;
  RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
  RewriteCond %{REQUEST_FILENAME} !-d&lt;br /&gt;
  RewriteRule ^(.*)$ redirect.php?$1 [L,QSA]&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Ahora hay que crear un fichero php que contenga lo siguiente:&lt;br /&gt;
&amp;lt;?php&lt;/p&gt;
&lt;p&gt;// De ht tp://skiffie. com/code/php/replace-once&lt;br /&gt;
function str_replace_count($search,$replace,$subject,$times) {&lt;br /&gt;
    $subject_original=$subject;&lt;br /&gt;
    $len=strlen($search);&lt;br /&gt;
    $pos=0;&lt;br /&gt;
    for ($i=1;$i&amp;lt;=$times;$i++) {&lt;br /&gt;
        $pos=strpos($subject,$search,$pos);&lt;br /&gt;
        if($pos!==false) {&lt;br /&gt;
            $subject=substr($subject_original,0,$pos);&lt;br /&gt;
            $subject.=$replace;&lt;br /&gt;
            $subject.=substr($subject_original,$pos+$len);&lt;br /&gt;
            $subject_original=$subject;&lt;br /&gt;
        } else {&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    return($subject);&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;$direcciones = array();&lt;br /&gt;
$handle = fopen(&quot;redirecciones.csv&quot;, &quot;r&quot;);&lt;br /&gt;
while (($data = fgetcsv($handle, 1000, &quot;;&quot;)) !== FALSE) {&lt;br /&gt;
    $num = count($data);&lt;br /&gt;
    $direcciones[$data[0]] = $data[1];&lt;br /&gt;
}&lt;br /&gt;
fclose($handle);&lt;/p&gt;
&lt;p&gt;/*&lt;br /&gt;
echo &#039;&#039;;&lt;br /&gt;
print_r($direcciones);&lt;br /&gt;
echo &#039;&#039;;&lt;br /&gt;
*/&lt;/p&gt;
&lt;p&gt;$_SERVER[&#039;QUERY_STRING&#039;] = str_replace_count(&#039;&amp;amp;&#039;,&#039;?&#039;,$_SERVER[&#039;QUERY_STRING&#039;],1);&lt;br /&gt;
//echo &#039;Dirección: &#039; . $_SERVER[&#039;QUERY_STRING&#039;];&lt;/p&gt;
&lt;p&gt;Header( &quot;HTTP/1.1 301 Moved Permanently&quot; );&lt;br /&gt;
Header( &quot;Location: ht tp://www.nuevo-dominio.es/&quot; . $direcciones[$_SERVER[&#039;QUERY_STRING&#039;]] );&lt;br /&gt;
//echo &quot;Hay que redireccionar a ht tp://www.nuevo-dominio.es/&quot; . $direcciones[$_SERVER[&#039;QUERY_STRING&#039;]] . &#039;&#039;;&lt;br /&gt;
?&amp;gt;&lt;/p&gt;
&lt;p&gt;(eh puesto un espacio en cada ocurrencia de http por que el filtro que usa este post le intentaba poner un enlace y me fastidiaba el código)&lt;/p&gt;
&lt;p&gt;Tened en cuenta que todavía no lo he probado demasiado y que es algo hecho de forma rápida.&lt;/p&gt;
&lt;p&gt;Ahora sólo falta crear un fichero csv (en mi caso lo he separado por punto y coma) en el que el primer parámetro sea el origen y el segundo el destino (en mi caso no he puesto los dominios). Algo así:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
product_info.php/cPath/21/products_id/36;producto/aceite-de-onagra&lt;br /&gt;
product_info.php/cPath/21/products_id/188;producto/aceite-de-salmon-450-perlas-omega-3&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;En lugar de usar un fichero csv y llenarlo a mano también se podría, usando las bases de datos de las dos webs, hacer algo más automático aunque en nuestro caso no se podía ya que los títulos no siempre eran los mismos.&lt;/p&gt;
&lt;p&gt;Aún no está en uso ya que la wen web no está &quot;publicada&quot; pero podéis ver que realmente hace el 301 (necesario para mantener el posicionamiento) usando &lt;a href=&quot;http://www.seocentro.com/tools/online/server-headers-check.html&quot;&gt;esta herramienta&lt;/a&gt; y poniendo en el input &lt;a href=&quot;http://www.amatusalud.es/redirect/product_info.php?products_id=163&quot; title=&quot;http://www.amatusalud.es/redirect/product_info.php?products_id=163&quot;&gt;http://www.amatusalud.es/redirect/product_info.php?products_id=163&lt;/a&gt;&lt;/p&gt;
</description>
 <comments>http://carlos.rinconsanchez.com/redirecion-de-un-dominio-otro-con-urls-diferentes#comments</comments>
 <category domain="http://carlos.rinconsanchez.com/category/temas/dominios">dominios</category>
 <category domain="http://carlos.rinconsanchez.com/category/temas/drupal">drupal</category>
 <category domain="http://carlos.rinconsanchez.com/category/temas/redireccion">redirección</category>
 <pubDate>Fri, 10 Oct 2008 11:36:16 +0000</pubDate>
 <dc:creator>Carlos</dc:creator>
 <guid isPermaLink="false">129 at http://carlos.rinconsanchez.com</guid>
</item>
<item>
 <title>Redirección del dominio sin www a con www en Drupal con multisite</title>
 <link>http://carlos.rinconsanchez.com/redireccion-del-dominio-sin-www-con-www-en-drupal-con-multisite</link>
 <description>&lt;p&gt;Si quieres que se pueda acceder a tu dominio sin www&#039;s y con y quieres evitar las páginas duplicadas un buen método es hacer una redirección de un sitio a otro usando mod_rewrite.&lt;/p&gt;
&lt;p&gt;Para hacerlo normalmente no hay problema, de sin www&#039; a con sería algo así:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
&lt;ifmodule mod_rewrite.c&gt;&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteBase /&lt;br /&gt;
RewriteCond %{HTTP_HOST} !^www\.dominio\.com [NC]&lt;br /&gt;
RewriteRule ^(.*) http://www.dominio.com/$1 [L,R=301]&lt;br /&gt;
&lt;/ifmodule&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;y para que sea al revés, de www&#039;s a sin:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
RewriteCond %{HTTP_HOST} !^dominio\.com\.es [NC]&lt;br /&gt;
RewriteRule ^(.*) http://dominio.com/$1 [L,R=301]&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;(de &lt;a href=&quot;http://telendro.com.es/2005/09/13/redireccionamiento-301/&quot;&gt;telendro.com.es&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;El problema en Drupal si usamos el multiste es que sólo hay un .htaccess para todos los dominios por lo que no podemos ponerlo en el .htaccess. Pero no está todo perdido, también se puede hacer:&lt;/p&gt;
&lt;p&gt;Para pasar de sin www&#039;s a con:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
  RewriteCond %{REQUEST_URI}\\/%{HTTP_HOST}/www. ^/+(.+/)?[^.]*[^/]\\(/)([^w][^w][^w][^.].*/(www\.)¦.*)$ [OR,NC]&lt;br /&gt;
  RewriteCond %{HTTP_HOST}/www. ^(/)?(/)?([^w][^w][^w][^.].*/(www\.))$ [NC]&lt;br /&gt;
  RewriteRule ^ http://%4%{HTTP_HOST}%{REQUEST_URI}%2 [L,R=301]&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;(encontrado por &lt;a href=&quot;http://cambrico.net/&quot;&gt;Pedro&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;y para pasar de www&#039; a sin:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
    RewriteEngine On&lt;br /&gt;
    RewriteCond %{HTTP_HOST} ^www\.(.*)$&lt;br /&gt;
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L]&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;(visto en el &lt;a href=&quot;http://alexsancho.name/archives/2006/06/redireccion-de-dominios-con-apache/&quot;&gt;blog de Alex Sancho&lt;/a&gt;)&lt;/p&gt;
</description>
 <comments>http://carlos.rinconsanchez.com/redireccion-del-dominio-sin-www-con-www-en-drupal-con-multisite#comments</comments>
 <category domain="http://carlos.rinconsanchez.com/category/temas/drupal">drupal</category>
 <category domain="http://carlos.rinconsanchez.com/category/temas/expresiones-regulares">expresiones regulares</category>
 <category domain="http://carlos.rinconsanchez.com/category/temas/mod-rewrite">mod_rewrite</category>
 <category domain="http://carlos.rinconsanchez.com/category/temas/redireccion">redirección</category>
 <category domain="http://carlos.rinconsanchez.com/category/temas/www">www</category>
 <pubDate>Sun, 21 Sep 2008 12:20:33 +0000</pubDate>
 <dc:creator>Carlos</dc:creator>
 <guid isPermaLink="false">116 at http://carlos.rinconsanchez.com</guid>
</item>
</channel>
</rss>
