【问题标题】:Wordpress rewrite rule redirects to postWordpress 重写规则重定向到帖子
【发布时间】:2016-03-11 19:49:11
【问题描述】:

我目前正在处理 Wordpress 中的 URL 重写。

我正在尝试重写此 URL:

http://localhost/adorable-nails/behandelingen-tarieven/?category=gelnagels

收件人:

http://localhost/adorable-nails/behandelingen-tarieven/gelnagels

我在主题的functions.php中添加了以下代码:

function add_query_vars_filter( $vars ){
    $vars[] = "category";
    return $vars;
}
add_filter( 'query_vars', 'add_query_vars_filter' );

function custom_rewrite_rule() {
    add_rewrite_rule('^behandelingen-tarieven/([^/]*)/([^/]*)/?','index.php?pagename=behandelingen-tarieven&category=$matches[1]','top');
}
add_action('init', 'custom_rewrite_rule', 10, 0);

所以似乎正在发生的事情是,当我尝试转到 http://localhost/adorable-nails/behandelingen-tarieven/gelnagels 时,它会将我重定向到帖子名称中包含“gelnagels”的帖子,我当前的永久链接设置设置为:http://localhost/adorable-nails/sample-post/

所以我想知道是否有避免重定向,还是我必须选择普通的永久链接设置并自己重写所有规则?

提前致谢!

【问题讨论】:

  • 您的正则表达式有 2 个可能的匹配项,而 url 只提供了一个。将 ^behandelingen-tarieven/([^/]*)/([^/]*)/? 更改为 ^behandelingen-tarieven/([^/]*)/? 并保存您的永久链接配置是否可以解决您的问题?
  • 我已经写了一个答案。很高兴我能帮忙:)

标签: wordpress mod-rewrite rewrite


【解决方案1】:

正则表达式有 2 个可能的匹配项,而 url 只提供了一个。将 ^behandelingen-tarieven/([^/]*)/([^/]*)/? 更改为 ^behandelingen-tarieven/([^/]*)/? 并保存您的永久链接似乎解决了问题。

这里最重要的事情(这就是我写这个作为答案的原因)是:

永远不要忘记在更改 rewrite_rule 后保存您的永久链接配置

我花了太多时间来更改它,但直到我意识到保存永久链接是必要的之前什么都没有发生。希望这对将来的某人有所帮助:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-12
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-21
    相关资源
    最近更新 更多