我在wordpress中创建了一个假页面,我抓住了这段代码:
if ($_GET['fake_page'] == "myfakepage") {
add_filter('the_title','plugin_myown_title');
add_filter('the_content','plugin_myown_content');
add_action('template_redirect', 'plugin_myown_template');
}
这可以正常工作。 现在我想做的是重写这样的网址
my_site?fake_page=myfakepage
在
my_site/product/myfakepage
其中,product是从wordpress仪表板创建的现有页面。
我遵循了这个指南:
http://statichtml.com/2010/mod-rewrite-baseon-on-query-string.html
并定义了这条规则:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^fake_page=(.*)$ [NC]
RewriteRule ^/$ my_site/product/%1 [NC,L,R=301]
但我得到的是
my_site/product?fake_page=myfakepage
问题在哪里?
此外,我想知道是否输入浏览器:
my_site/product/myfakepage
我可以让wordpress将其视为
my_site?fake_page=myfakepage
没有任何重定向。 谢谢!
答案 0 :(得分:0)
尝试使用functions.php中的代码:
add_action( 'generate_rewrite_rules', 'my_rewrite_rules' );
function my_rewrite_rules( $wp_rewrite )
{
$wp_rewrite->rules = array(
'product/myfakepage/?$' => $wp_rewrite->index . '?fake_page=myfakepage',
) + $wp_rewrite->rules;
}
注意:您不需要自定义.htaccess。顺便说一下:你不能直接修改.htaccess,永远不要。 WordPress中有一个广泛的Rewrite API,允许您应用自定义规则。