Problema con l'utilizzo di .htaccess per reindirizzare il feed Feedburner
Sto utilizzando permalink nella struttura anno/mese/nome-articolo e anche il plugin download-monitor per gestire i download dei file. Ho aggiunto le regole di riscrittura in cima al file .htaccess seguendo le istruzioni su perishable press.
Ho fatto la stessa cosa su un altro blog e ha funzionato perfettamente. Le uniche differenze sono che quel blog non utilizzava download-monitor e l'installazione era nella radice del dominio, invece che in una sottodirectory /blog/
.
Se commento questa riga:
RewriteCond %{REQUEST_URI} ^/?feed.* [NC]
Funziona. Sono semplicemente curioso di sapere perché questa riga sarebbe nelle istruzioni se non funziona? Ha qualcosa a che fare con la sottodirectory?
.htaccess:
# reindirizzamento temporaneo di tutti i feed wordpress a feedburner
# da 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

Prova questo. Questo formato funziona per me. Non devi ripetere continuamente 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/mysite [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.mysite.com/blog/wp-content/plugins/download-monitor/download.php?id=$1 [L]
</IfModule>
# END WordPress
Ecco una buona guida per htaccess: http://codeigniter.com/wiki/mod_rewrite/
E se continui ad avere problemi, potresti considerare l'uso di un plugin: http://wordpress.org/extend/plugins/tentbloggers-feedburner-rss-redirect-plugin/screenshots/

Quindi, stai dicendo che la linea:
RewriteCond %{REQUEST_URI} ^/?feed.* [NC]
non è necessaria? Sembra funzionare quando rimuovo quella linea, ma non ho capito perché quella linea sarebbe stata nelle istruzioni.

Quella RewriteCond è ancora necessaria, se la vedi nel mio codice, è ancora lì. Semplicemente non devi ripetere ifModule, RewriteEngine e RewriteBase. Confronta il codice sopra con quello che hai postato originariamente.

Ok, ho usato la tua versione e non riesco a farla funzionare, ora nessuno dei link del feed reindirizza a FeedBurner. Riformulerò la mia domanda sopra.

ReWriteCond../?feed è una direttiva che definisce una condizione di regola dove lo stato corrente dell'URI corrisponde a /?feed. Nel tuo post originale, hai segnalato un problema sulla prima riga di rewritebase. Per questo motivo l'ho lasciata così com'è. Questa riga non è necessaria. Dato che hai detto di aver imparato il codice da perishablepress, devi aver letto il loro commento di rimuovere questa riga se il tuo server non reindirizza correttamente.

Ops, non stavo reindirizzando il feed dei commenti, quindi penso di aver trascurato quella parte. Grazie! Inoltre, l'unico motivo per cui tutto era separato nel mio .htaccess è dovuto al fatto di permettere a WordPress di aggiungere le sue regole e al download monitor, e ho semplicemente copiato il codice di feedburner. Il tuo è decisamente più pulito.

In realtà, questo non funziona. Devi spostare l'ultimo RewriteCond
e RewriteRule
sopra la riga RewriteRule ^index\.php$ - [L]
. L'articolo specifica chiaramente che deve essere sopra la sezione normale dei permalink di WP.
