正在忽略.htaccess重写器规则-正在键入以删除WP帖子中的日期

时间:2018-04-25 作者:qwueryIT

应该是一个相当简单的过程。我已经完成了相当一部分的互联网搜索,但无法在/public\\u html中使用htaccess重写

使用VPS Apache服务器,你知道为什么吗?提前感谢您!

尝试旧的RedirectMatch 301和mod\\u rewrite RewriteRuleas(一次一个),如下所示:

# New Post URLs, without dates, requires redirects for old links.
RedirectMatch 301 ^/([0-9]+)/([0-9]+)/(?!page/)(.+)$ https://www.url.org/$3
# or RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/(?!page/)(.+)$ https://www.url.org/$3

 BEGIN WordPress
 <IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /
 RewriteRule ^([0-9]{4})/([0-9]{2})/([a-z0-9\\-/]+)$ /$3 [R=301,NC,L]
etc...

1 个回复
SO网友:Oleg Butuzov

您可以在“设置”->“永久链接”中更改它们,这样会更改为帖子生成的链接。如果你仍然对结果不满意,你可以删除WordPress rewrite rules 对于日期date_rewrite_rules 滤器

更新时间:

在这种情况下,您可以使用post\\U rewrite\\U规则保持发布日期规则的工作状态,并在tempalte_redirect 行动挂钩。您可以将此代码插入您的代码库并刷新WordPress中的重写规则。应该在那之后就可以了。

add_filter( \'post_rewrite_rules\', function( $rules ) {
    global $wp_rewrite;
    $rule = [ \'([0-9]{4})/([0-9]{1,2})/([^/]+)(?:/([0-9]+))?/?$\' =>
        \'index.php?year=$matches[1]&monthnum=$matches[2]&name=$matches[3]\' ];
    return array_merge($rules, $rule);
});

add_filter(\'template_redirect\', function(){
    global $wp_query;

    if ( ! is_single() ) {
        return;
    }

    if ( $wp_query->get(\'monthnum\') !== "" && $wp_query->get(\'year\') !== "" ) {
        wp_redirect( get_permalink(), 301 );
    }
});

结束

相关推荐

用于路由分离的REST API使用主题的.htaccess和代理设置

开发一个使用RESTAPI的解耦前端。。。我正在使用create-react-app 因此可以输入proxy my中WP对应的字段package.json 然后写我的电话fetch(\'/wp-json/v2/pages/...\') 如果我跑步yarn start 从前端目录。。。我很想在我的wp-content/themes/my-theme 尽管是目录我不是.htaccess 上帝我怎样才能做到:一般请求,如mysite.com/jibble/jabble 由我的SPA路由处理,如mysite.co