web-dev-qa-db-fra.com

Problème d'utilisation de .htaccess pour rediriger le flux feedburner

J'utilise des permaliens année/mois/après nom, ainsi que le plugin download-monitor pour gérer les téléchargements de fichiers. J'ai ajouté des règles de réécriture en haut du fichier .htaccess en suivant les instructions de Perisshable Press .

Je viens de faire la même chose sur un autre blog et cela a bien fonctionné. Les seules différences sont que le blog n’a pas utilisé le moniteur de téléchargement et que l’installation a eu lieu à la racine du domaine, au lieu d’un sous-répertoire /blog/.

Si je commente cette ligne:

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

Ça marche. Je suis simplement curieux de savoir pourquoi cette ligne figurerait-elle dans les instructions si elle ne fonctionne pas? Cela a-t-il quelque chose à voir avec le sous-répertoire?

. htaccess:

# temp redirect all wordpress feeds to feedburner
# from 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
2
jjeaton

Essaye ça. Ce format fonctionne pour moi. Il n'est pas nécessaire de répéter continuellement 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

Voici un tutoriel intéressant pour htaccess: http://codeigniter.com/wiki/mod_rewrite/

Et si vous continuez à avoir des problèmes, envisagez peut-être d'utiliser un plugin: http://wordpress.org/extend/plugins/tentbloggers-feedburner-rss-redirect-plugin/screenshots/

3
Sean Lee