应该是一个相当简单的过程。我已经完成了相当一部分的互联网搜索,但无法在/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...
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 );
}
});