我有一个wordpress页面,它接受一个查询参数,并根据该参数自定义页面(通过javascript,wordpress模板总是相同的)。其url如下所示:
example.com/site/city-page?center=mycitycenter
我想将其改写为:
example.com/site/city/mycitycenter
在哪里
site
是wordpress实例所在的子目录。
我试着重写如下:
function add_city_query_var ( $query_vars ) {
$query_vars[] = \'center\';
return $query_vars;
}
function add_rewrites() {
add_rewrite_rule(
\'city/([^/]+)/?$\',
\'index.php?pagename=city-page¢er=$matches[1]\',
\'top\'
);
}
add_filter(\'query_vars\', \'add_city_query_var\');
add_action( \'init\', \'add_rewrites\' );
我还尝试了:
add_action( \'generate_rewrite_rules\', \'my_rewrite_rules\' );
function my_rewrite_rules( $wp_rewrite )
{
$wp_rewrite->rules = array(
\'city/([^/]+)/?$\' => $wp_rewrite->index . \'?pagename=city-page¢er=\' . $wp_rewrite->preg_index( 1 )
) + $wp_rewrite->rules;
}
我确保转到永久链接页面并保存永久链接。
我试过via。htaccess:
RewriteRule ^city/([^/]*)$ /site/city-page/?center=$1 [L,QSA,NC]
使用上面的不同位置(wordpress在上面重写,下面重写,在该块中)和标志的组合。
在每种情况下,我都会得到一个wordpress 404页面。
我可以很好地访问目标页面,并且可以进行重定向(通过添加R=301
在中标记.htaccess
)
我错过了什么?
P、 我试着把答案贴在URL rewrites and pagination 和Rewrite rule not working 和Wordpress Rewrite