Problemă cu utilizarea .htaccess pentru redirecționarea feed-ului Feedburner

8 iun. 2011, 21:16:20
Vizualizări: 883
Voturi: 2

Folosesc permalink-uri de tip an/lună/nume-post și, de asemenea, plugin-ul download-monitor pentru a gestiona descărcările de fișiere. Am adăugat reguli de rescriere la începutul fișierului .htaccess conform instrucțiunilor de la perishable press.

Tocmai am făcut același lucru pe un alt blog și a funcționat perfect. Singurele diferențe sunt că acel blog nu utiliza download-monitor și instalația era în root-ul domeniului, nu într-un sub-director /blog/.

Dacă comentez această linie:

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

Funcționează. Sunt pur și simplu curios de ce ar fi această linie în instrucțiuni dacă nu funcționează? Are legătură cu sub-directorul?

.htaccess:

# redirecționare temporară a tuturor feed-urilor WordPress către Feedburner
# de la 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
Toate răspunsurile la întrebare 1
7

Încearcă asta. Acest format funcționează pentru mine. Nu trebuie să repeți mereu 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

Iată un ghid util pentru .htaccess: http://codeigniter.com/wiki/mod_rewrite/

Și dacă în continuare ai probleme, poate ar fi bine să încerci un plugin: http://wordpress.org/extend/plugins/tentbloggers-feedburner-rss-redirect-plugin/screenshots/

28 iul. 2011 05:29:07
Comentarii

Deci, spui că linia: RewriteCond %{REQUEST_URI} ^/?feed.* [NC] nu este necesară? Se pare că funcționează când elimin acea linie, dar nu am înțeles de ce ar fi acea linie în instrucțiuni.

jjeaton jjeaton
31 iul. 2011 19:49:41

Această condiție RewriteCond este încă necesară, dacă o vezi în codul meu, este încă acolo. Doar că nu trebuie să repeți ifModule, RewriteEngine și RewriteBase. Compară codul de mai sus cu cel pe care l-ai postat inițial.

Sean Lee Sean Lee
1 aug. 2011 10:26:47

Ok, am folosit versiunea ta și nu reușesc să o fac să funcționeze, acum niciunul dintre link-urile de feed nu se redirecționează către FeedBurner. Voi reformula întrebarea mea de mai sus.

jjeaton jjeaton
2 aug. 2011 08:02:02

ReWriteCond../?feed este o directivă care definește o condiție de regulă în care starea curentă a URI se potrivește cu cea a /?feed. În postarea ta originală, ai menționat problema pe prima linie a rewritebase. Prin urmare, am lăsat această linie neatinsă. Această linie nu este necesară. Deoarece ai menționat că ai învățat codul de la perishablepress, trebuie să fi citit comentariul lor de a elimina această linie dacă serverul tău nu redirecționează corect.

Sean Lee Sean Lee
2 aug. 2011 08:11:38

evident, nu redirecționam feed-ul de comentarii, așa că cred că am trecut cu vederea acea parte. Mulțumesc! De asemenea, singurul motiv pentru care totul era separat în fișierul meu .htaccess se datorează faptului că am permis WordPress să adauge propriile reguli și Download Monitor, iar eu doar am copiat codul feedburner. Versiunea ta este cu siguranță mai ordonată.

jjeaton jjeaton
3 aug. 2011 01:48:00

De fapt, acest lucru nu funcționează. Trebuie să muti ultimul RewriteCond și RewriteRule deasupra liniei RewriteRule ^index\.php$ - [L]. Articolul specifică în mod clar că trebuie să fie deasupra secțiunii obișnuite de permalinkuri WP.

jjeaton jjeaton
3 aug. 2011 02:30:27

e bine de știut că ai rezolvat. Fișierul meu htaccess este structurat pentru alt scop. Trebuie doar să ne adaptăm pentru a satisface nevoile noastre separate. (zâmbet)

Sean Lee Sean Lee
3 aug. 2011 12:21:25
Arată celelalte 2 comentarii