web-dev-qa-db-fra.com

Apache Fallback au lieu de add_rewrite_rule

Mon exigence est de faire SEO Friendly URL pour un site existant dans Wordpress.

Par exemple,

URL actuelle : http://test.com/test/?pid=19971 qui est le La page "test" rend les données d'un plugin personnalisé.

Ma nouvelle URL de référencement : http://test.com/brand/sub_category/product_name Ici, Brand, Sub_category et product_name sont extraits du pid. Je renseigne les données en utilisant la règle de réécriture suivante de functions.php,

add_rewrite_rule(MY_DYNAMICALLY_POPULATED_URL.'$ page-test.php?brand='.$brand_name.'&sub='.$sub_category.'&pname='.$product_name.' [L]', 'top');

Dans ce code, page-test.php est placé dans le répertoire racine et les données sont rendues à partir de ce fichier en transmettant le nom de la marque, la sous-catégorie et le nom du produit pour extraire le pid. Donc, en fonction du pid, chaque page de produit est rendue.

Ce code fonctionne bien pour moi. Lorsque je sauvegarde les données automatiquement, celles-ci sont écrites en .htaccess et le rendu de la page avec la nouvelle URL de référencement.

Mais lorsque mon client a besoin de le faire par FALLBACK dans Apache au lieu de add_rewrite_rule en raison d’un problème d’équilibrage de la charge.

Alors, quelqu'un peut-il m'aider à faire de même avec la ressource de repli?.

1
Harish Chinju

Cela a résolu mon problème.

function my_query_vars($vars)
{
$my_vars = array( 'PARAMETERS' );
return array_merge($my_vars, $vars);
}
add_filter('query_vars', 'my_query_vars');


function my_rewrite_rules($rules)
{
global $wp_rewrite;
$my_page = 'PAGESLUG';
$my_rule = array( 'URL/?' => 'index.php?pagename=' . $my_page . '&school_type=$matches[1]' );
return array_merge($my_rule, $rules);
}
add_filter('page_rewrite_rules', 'my_rewrite_rules');
1
Harish Chinju