Problema con l'utilizzo di .htaccess per reindirizzare il feed Feedburner

8 giu 2011, 21:16:20
Visualizzazioni: 883
Voti: 2

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
0
Tutte le risposte alla domanda 1
7

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/

28 lug 2011 05:29:07
Commenti

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.

jjeaton jjeaton
31 lug 2011 19:49:41

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.

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

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.

jjeaton jjeaton
2 ago 2011 08:02:02

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.

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

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.

jjeaton jjeaton
3 ago 2011 01:48:00

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.

jjeaton jjeaton
3 ago 2011 02:30:27

buono a sapersi che hai risolto. Il mio htaccess è strutturato per uno scopo diverso. Dobbiamo solo adattarlo per soddisfare le nostre esigenze separate. (sorriso)

Sean Lee Sean Lee
3 ago 2011 12:21:25
Mostra i restanti 2 commenti