web-dev-qa-db-fra.com

Les règles de réécriture dans .htaccess sont-elles écrasées?

Je ne parviens pas à le faire fonctionner en ajoutant des règles de réécriture personnalisées dans functions.php ou en ajoutant des permidences personnalisées. J'ai ce code dans mon .htaccess qui fonctionne bien.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# BEGIN IPHONE RULES
RewriteRule ^mobile/([^/]+)$ mobile/index.php?action=$1 [QSA,L]
# END IPHONE RULES
# BEGIN PDF RULES
RewriteRule ^certificates/30-Days-Certificate-([0-9]+)$ pdf/index.php?type=30day&period=$1 [QSA,L]
RewriteRule ^certificates/12-Month-Certificate$ pdf/index.php?type=12Month [QSA,L]
# END PDF RULES
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Mais de temps en temps, les valeurs par défaut sont actualisées et les règles de l'iPhone et du pdf sont perdues. Le mobile s'appelle comme ceci /mobile/progress?userId=22&date=2011-02-21progress est l'action et les autres ne sont que des vars de requête. Sur le .htaccess fonctionne bien, mais je ne parviens pas à le faire fonctionner en ajoutant des règles personnalisées. Toute aide sera très appréciée.

3
chifliiiii

La partie entre # BEGIN WordPress et # END WordPress sera toujours réécrite lorsque les permaliens seront vidés. Vous pouvez soit placer vos règles de réécriture supplémentaires avant ce segment, soit les ajouter dans WordPress en tant que règles de réécriture externes . Si vous videz vos règles maintenant (en visitant la page Permaliens , par exemple), vos règles supplémentaires seront ajoutées au fichier .htaccess.

add_action( 'init', 'wpse12708_init' );
function wpse12708_init()
{
    global $wp_rewrite;
    $wp_rewrite->add_external_rule( 'mobile/([^/]+)$', 'mobile/index.php?action=$1' );
    $wp_rewrite->add_external_rule( 'certificates/30-Days-Certificate-([0-9]+)$', 'pdf/index.php?type=30day&period=$1' );
    $wp_rewrite->add_external_rule( 'certificates/12-Month-Certificate$', 'pdf/index.php?type=12Month' );
}
2
Jan Fabry