Перепишите уродливый URL-адрес для очистки URL-адреса

Я пытаюсь перейти от:

http://www.example.com/product?level1=value1&level2=value2&level3=value3&level4=value4 

Для того, чтобы:

 http://www.example.com/product/value1/value2/value3/value4 

Иногда не все значения установлены, поэтому ему также необходимо работать только с двумя установленными значениями:

 http://www.example.com/product/value1/value2 

На странице http://www.example.com/product/ используется собственный файл шаблона.

Вот как выглядит мой код:

 function my_rewrite_rules( $wp_rewrite ) { $wp_rewrite->rules = array_merge( array( '^product/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$' => 'index.php?level1=$matches[1]&level2=$matches[2]&level3=$matches[3]&level4=$matches[4]' ), $wp_rewrite->rules); } add_filter( 'generate_rewrite_rules', 'my_rewrite_rules' ); function my_rewrite_queryvars( $qvars ) { $qvars[] = 'level1'; $qvars[] = 'level2'; $qvars[] = 'level3'; $qvars[] = 'level4'; return $qvars; } add_filter( 'query_vars', 'my_rewrite_queryvars' ); 

Он работает, когда я пытаюсь получить query_vars, но он также дает мне 404 страницу, а не правильный шаблон.

Что я делаю не так?

Solutions Collecting From Web of "Перепишите уродливый URL-адрес для очистки URL-адреса"