Apache Fallback而不是add_rewrite_rule

时间:2014-04-21 10:38:47

标签: php wordpress apache .htaccess fallback

我的要求是为Wordpress中的现有网站执行SEO友好URL。

例如,

Current URL: http://localhost/test/?pid=19971
that is the page "test" is rendering the data from some custom plugin. 

My new SEO URL : http://localhost/brand/sub_category/product_name
Here, Brand, Sub_category and product_name is fetched from the pid..

我使用functions.php,

中的以下重写规则填充数据
add_rewrite_rule(MY_DYNAMICALLY_POPULATED_URL.'$ page-test.php?brand='.$brand_name.'&sub='.$sub_category.'&pname='.$product_name.' [L]', 'top');

在此代码中,page-test.php放在根目录中,并通过传递brand_namesub_categoryproductname来获取该文件的数据。的 PID 即可。因此,基于 pid ,每个产品页面都会呈现。

这段代码对我来说很好,当我自动保存数据时,数据写在.htaccess中,页面用新的SEO URL呈现。

但是当我的客户端需要它由Apache中的FALLBACK而不是add_rewrite_rule执行时,由于某些负载平衡问题。

所以任何人都可以帮助我如何使用Fallback resource

1 个答案:

答案 0 :(得分:-1)

这解决了我的问题。

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');