我的要求是在Wordpress中为现有站点创建SEO友好的URL。
例如
Current URL: http://test.com/test/?pid=19971也就是说,“测试”页面正在呈现来自某个自定义插件的数据。
My new SEO URL : http://test.com/brand/sub_category/product_name这里,品牌、Sub\\u类别和product\\u名称取自pid。我使用函数中的以下重写规则填充数据。php,
add_rewrite_rule(MY_DYNAMICALLY_POPULATED_URL.\'$ page-test.php?brand=\'.$brand_name.\'&sub=\'.$sub_category.\'&pname=\'.$product_name.\' [L]\', \'top\');
在此代码中,页测试。php被放置在根目录中,通过传递brand\\u name、sub\\u category和productname来获取pid,从而从该文件中呈现数据。因此,每个产品页面都是基于pid呈现的。
这段代码对我来说工作得很好,当我自动保存数据时,数据就会写入。htaccess和页面正在使用新的SEO URL呈现。
但当我的客户端需要它时,由于一些负载平衡问题,需要在Apache中通过回退而不是add\\u rewrite\\u规则来完成。
那么,有谁能帮助我如何对回退资源执行同样的操作吗。
最合适的回答,由SO网友:Harish Chinju 整理而成
这解决了我的问题。
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\');