Wordpress Rewrite

时间:2013-07-03 作者:Austin Biggs

我在试着http://example.com/site/vendors/?u=abc 重写到http://example.com/site/vendors/abc 但我一辈子都搞不清楚如何让url重写生效。

/site/是我的WP安装/供应商的根目录/是一个页面

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

假设u 是自定义查询变量,必须首先将其添加到已识别的查询变量数组中:

function wpa_query_vars( $query_vars ){
    $query_vars[] = \'u\';
    return $query_vars;
}
add_filter(\'query_vars\', \'wpa_query_vars\');
然后添加一个内部重写规则,该规则接受附加到vendors 并将其作为u 查询变量:

function wpa_rewrite(){
    add_rewrite_rule(
        \'vendors/([^/]+)/?$\',
        \'index.php?pagename=vendors&u=$matches[1]\',
        \'top\'
    );
}
add_action( \'init\', \'wpa_rewrite\' );
确保flush rewrite rules 添加此规则后,您也可以通过访问Settings > Permalinks 管理页面。

然后在模板中,可以访问u 通过get_query_var():

$vendor = get_query_var( \'u\' );

SO网友:David Kryzaniak

我相信这就是您所寻找的:

RewriteRule ^/site/vendors/([^/]*)$ /site/vendors/?u=$1 [L]

结束

相关推荐

.htaccess重定向无法正常工作[?utm_source=]

我有一个wordperss博客。这个博客有两个域名(example1.com和example2.com)。在我的情况下,示例1。com重定向到示例2。com。此重定向工作正常。我看到Google机器人不断索引我的Feedbuner和Wordpress RSS提要utm\\u源URL参数。然后,我向添加了以下代码。htaccess文件,高于mod\\u重写规则。<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{QUER