Wordpress - 重写假网址

时间:2013-02-02 17:56:15

标签: wordpress mod-rewrite

我在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

没有任何重定向。 谢谢!

1 个答案:

答案 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,允许您应用自定义规则。