如何使用ADD_REWRITE_RULE等将此.htaccess规则转换为动态规则?

时间:2013-09-05 作者:Doug Cassidy

在里面htaccess,我有这个:

RewriteRule ^land/(.*) /?land=1&exper=$1 [QSA,L]
这就形成了这样的东西:领域。com/land/exper1填写$\\u GET with

$\\u GET[\'land]=1和$\\u GET[\'exper]=exper1

太棒了

我想把这个拿出来。htaccess并动态添加规则,即查找其他查询字符串值,如“ocean”,而不是“land”。我希望将这些值填入$\\u GET或其他变量中,以便对其进行评估。我无法确定add\\u rewrite\\u规则是否用于实际覆盖我的。htaccess,但我尝试过的所有事情,flush\\u rewrite\\u rules(true)等都没有做到。

1 个回复
最合适的回答,由SO网友:cybmeta 整理而成

尝试此操作并按照相同的结构添加更多重写规则或查询变量:

add_filter(\'query_vars\', \'my_query_vars\');
function my_query_vars( $vars) {
    $vars[] = "land";
    $vars[] = "expert";
   return $vars;
}

// Add the new rewrite rule to existings ones
add_action(\'init\',\'my_rewrite_rules\');
function my_rewrite_rules() {
    add_rewrite_rule( \'land/(.+)/?$\' , \'index.php?land=1&expert=$matches[1]\' , \'top\' );
}
不要忘记刷新重写规则,方法是转到管理区域->设置->永久链接->单击保存。

结束