Problema al usar .htaccess para redirigir el feed de Feedburner

8 jun 2011, 21:16:20
Vistas: 883
Votos: 2

Estoy usando enlaces permanentes con la estructura año/mes/nombre-del-post, y también estoy usando el plugin download-monitor para manejar descargas de archivos. Agregué reglas de reescritura al principio del archivo .htaccess siguiendo las instrucciones de perishable press.

Hice exactamente lo mismo en otro blog y funcionó sin problemas. Las únicas diferencias son que ese blog no usaba download-monitor y la instalación estaba en la raíz del dominio, no en un subdirectorio /blog/.

Si comento esta línea:

RewriteCond %{REQUEST_URI} ^/?feed.* [NC]

Funciona. Simplemente tengo curiosidad por saber por qué esta línea estaría en las instrucciones si no funciona. ¿Tiene algo que ver con el subdirectorio?

.htaccess:

# redirección temporal de todos los feeds de WordPress a Feedburner
# desde http://perishablepress.com/press/2008/03/25/redirect-wordpress-feeds-to-feedburner-via-htaccess-redux/
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /blog/
RewriteCond %{REQUEST_URI} ^/?feed.* [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*(FeedBurner|FeedValidator) [NC]
RewriteRule ^feed/?.*$ http://feeds.feedburner.com/mysite [L,NC,R=302]
</IfModule>

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /blog/
RewriteRule ^download/([^/]+)$ http://www.mysite.com/blog/wp-content/plugins/download-monitor/download.php?id=$1 [L]
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>

# END WordPress
0
Todas las respuestas a la pregunta 1
7

Prueba esto. Este formato funciona para mí. No necesitas repetir IfModule, RewriteEngine, RewriteBase.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteCond %{HTTP_USER_AGENT} !^.*(FeedBurner|FeedValidator) [NC] 
RewriteRule ^feed/?.*$ http://feeds.feedburner.com/misitio [L,NC,R=302]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]

RewriteRule ^download/([^/]+)$ http://www.misitio.com/blog/wp-content/plugins/download-monitor/download.php?id=$1 [L]
</IfModule>
# END WordPress

Aquí hay un buen tutorial sobre htaccess: http://codeigniter.com/wiki/mod_rewrite/

Y si continúas teniendo problemas, quizás considera usar un plugin: http://wordpress.org/extend/plugins/tentbloggers-feedburner-rss-redirect-plugin/screenshots/

28 jul 2011 05:29:07
Comentarios

Entonces, ¿estás diciendo que la línea: RewriteCond %{REQUEST_URI} ^/?feed.* [NC] no es necesaria? Parece funcionar cuando elimino esa línea, pero no entendí por qué esa línea estaría en las instrucciones.

jjeaton jjeaton
31 jul 2011 19:49:41

Esa RewriteCond aún es necesaria, si la ves en mi código, todavía está ahí. Simplemente no tienes que seguir repitiendo ifModule, RewriteEngine y RewriteBase. Compara el código de arriba con el que publicaste originalmente.

Sean Lee Sean Lee
1 ago 2011 10:26:47

Ok, usé tu versión y no puedo hacer que funcione, ya que ahora ninguno de los enlaces de feed redirige a FeedBurner. Reformularé mi pregunta anterior.

jjeaton jjeaton
2 ago 2011 08:02:02

ReWriteCond../?feed es una directiva que define una condición de regla donde el estado actual del URI coincide con el de /?feed. En tu publicación original, mencionaste un problema en la primera línea de rewritebase. Por lo tanto, dejé esto como está. Esta línea no es necesaria. Ya que mencionaste que aprendiste tu código de perishablepress, debes haber leído su comentario de eliminar esta línea si tu servidor no redirige correctamente.

Sean Lee Sean Lee
2 ago 2011 08:11:38

Vaya, no estaba redirigiendo el feed de comentarios, así que creo que pasé por alto esa parte. ¡Gracias! Además, la única razón por la que todo estaba separado en mi .htaccess se debe a que permití que WordPress agregara sus propias reglas y el download monitor, y simplemente copié el código de feedburner. El tuyo es definitivamente más limpio.

jjeaton jjeaton
3 ago 2011 01:48:00

En realidad, esto no funciona. Tienes que mover la última RewriteCond y RewriteRule para que estén encima de la línea RewriteRule ^index\.php$ - [L]. El artículo específicamente dice que tiene que estar encima de la sección regular de permalinks de WP.

jjeaton jjeaton
3 ago 2011 02:30:27

es bueno saber que lo resolviste. Mi htaccess está estructurado para un propósito diferente. Solo tenemos que ajustarlo para adaptarlo a nuestras necesidades particulares. (sonrisa)

Sean Lee Sean Lee
3 ago 2011 12:21:25
Mostrar los 2 comentarios restantes