{"id":67591,"date":"2017-04-28T23:21:39","date_gmt":"2017-04-28T23:21:39","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/wp-404-auto-redirect-to-similar-post\/"},"modified":"2025-11-21T04:51:05","modified_gmt":"2025-11-21T04:51:05","slug":"wp-404-auto-redirect-to-similar-post","status":"publish","type":"plugin","link":"https:\/\/am.wordpress.org\/plugins\/wp-404-auto-redirect-to-similar-post\/","author":7495951,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.6","stable_tag":"1.0.6","tested":"6.8.5","requires":"4.0","requires_php":"5.6","requires_plugins":null,"header_name":"WP 404 Auto Redirect to Similar Post","header_author":"hwk-fr","header_description":"Automatically Redirect any 404 to a Similar Post based on the Title, Post Type, Category & Taxonomy using 301 Redirects!","assets_banners_color":"6694aa","last_updated":"2025-11-21 04:51:05","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/hwk.fr\/","header_plugin_uri":"","header_author_uri":"https:\/\/hwk.fr","rating":4.9,"author_block_rating":0,"active_installs":30000,"downloads":399773,"num_ratings":113,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.3":{"tag":"0.3","author":"hwk-fr","date":"2017-04-28 23:08:28"},"0.3.2":{"tag":"0.3.2","author":"hwk-fr","date":"2017-04-29 02:23:02"},"0.4":{"tag":"0.4","author":"hwk-fr","date":"2017-04-29 09:51:20"},"0.4.0.2":{"tag":"0.4.0.2","author":"hwk-fr","date":"2017-04-29 10:12:39"},"0.7":{"tag":"0.7","author":"hwk-fr","date":"2017-09-30 18:55:29"},"0.7.1":{"tag":"0.7.1","author":"hwk-fr","date":"2017-10-01 00:42:22"},"0.7.2":{"tag":"0.7.2","author":"hwk-fr","date":"2017-10-02 13:26:53"},"0.7.6":{"tag":"0.7.6","author":"hwk-fr","date":"2018-01-03 00:18:34"},"0.7.7":{"tag":"0.7.7","author":"hwk-fr","date":"2018-01-25 19:56:53"},"0.9":{"tag":"0.9","author":"hwk-fr","date":"2018-10-17 08:19:58"},"0.9.0.1":{"tag":"0.9.0.1","author":"hwk-fr","date":"2018-10-22 07:59:43"},"0.9.0.2":{"tag":"0.9.0.2","author":"hwk-fr","date":"2018-10-29 14:55:25"},"1.0":{"tag":"1.0","author":"hwk-fr","date":"2018-11-11 23:17:09"},"1.0.1":{"tag":"1.0.1","author":"hwk-fr","date":"2018-11-12 14:41:09"},"1.0.2":{"tag":"1.0.2","author":"hwk-fr","date":"2019-12-27 16:10:11"},"1.0.3":{"tag":"1.0.3","author":"hwk-fr","date":"2020-06-12 18:50:35"},"1.0.4":{"tag":"1.0.4","author":"hwk-fr","date":"2024-02-04 12:34:33"},"1.0.5":{"tag":"1.0.5","author":"hwk-fr","date":"2024-04-18 20:24:32"},"1.0.6":{"tag":"1.0.6","author":"hwk-fr","date":"2025-11-21 04:51:05"}},"upgrade_notice":{"":"<p>None<\/p>"},"ratings":{"1":1,"2":0,"3":2,"4":0,"5":110},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":1972642,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":1972642,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":1972642,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":1972642,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.3","0.3.2","0.4","0.4.0.2","0.7","0.7.1","0.7.2","0.7.6","0.7.7","0.9","0.9.0.1","0.9.0.2","1.0","1.0.1","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":1972653,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":1972653,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":1972653,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":1972653,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":1972653,"resolution":"5","location":"assets","locale":""}},"screenshots":{"1":"Admin: Settings Page","2":"Admin: Post Types","3":"Admin: Taxonomies","4":"Admin: Engines","5":"Front: Debug Console"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[932,905,727,186,12268],"plugin_category":[],"plugin_contributors":[125273],"plugin_business_model":[],"class_list":["post-67591","plugin","type-plugin","status-publish","hentry","plugin_tags-932","plugin_tags-905","plugin_tags-redirect","plugin_tags-seo","plugin_tags-similar","plugin_contributors-hwk-fr","plugin_committers-hwk-fr"],"banners":{"banner":"https:\/\/ps.w.org\/wp-404-auto-redirect-to-similar-post\/assets\/banner-772x250.png?rev=1972642","banner_2x":"https:\/\/ps.w.org\/wp-404-auto-redirect-to-similar-post\/assets\/banner-1544x500.png?rev=1972642","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/wp-404-auto-redirect-to-similar-post\/assets\/icon-128x128.png?rev=1972642","icon_2x":"https:\/\/ps.w.org\/wp-404-auto-redirect-to-similar-post\/assets\/icon-256x256.png?rev=1972642","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/wp-404-auto-redirect-to-similar-post\/assets\/screenshot-1.png?rev=1972653","caption":"Admin: Settings Page"},{"src":"https:\/\/ps.w.org\/wp-404-auto-redirect-to-similar-post\/assets\/screenshot-2.png?rev=1972653","caption":"Admin: Post Types"},{"src":"https:\/\/ps.w.org\/wp-404-auto-redirect-to-similar-post\/assets\/screenshot-3.png?rev=1972653","caption":"Admin: Taxonomies"},{"src":"https:\/\/ps.w.org\/wp-404-auto-redirect-to-similar-post\/assets\/screenshot-4.png?rev=1972653","caption":"Admin: Engines"},{"src":"https:\/\/ps.w.org\/wp-404-auto-redirect-to-similar-post\/assets\/screenshot-5.png?rev=1972653","caption":"Front: Debug Console"}],"raw_content":"<!--section=description-->\n<p>Welcome to WP 404 Auto Redirect to Similar Post!<\/p>\n\n<p>This plugin automatically redirect 404 pages to similar posts based on Title, Post Types &amp; Taxonomies. If nothing similar is found, visitors will be redirected to the homepage or a custom URL.<\/p>\n\n<h4>Features:<\/h4>\n\n<ul>\n<li>Automatically detect any 404.<\/li>\n<li>Automatically search a similar post based on multiple factors:\n\n<ul>\n<li>Title<\/li>\n<li>Potential Post Type<\/li>\n<li>Potential Taxonomy<\/li>\n<\/ul><\/li>\n<li>If nothing similar is found, set your Fallback Behavior:\n\n<ul>\n<li>Redirect to homepage<\/li>\n<li>Redirect to a custom URL<\/li>\n<li>Display the default 404 page<\/li>\n<\/ul><\/li>\n<li>Choose the redirection HTTP header status:\n\n<ul>\n<li>301 headers<\/li>\n<li>302 headers<\/li>\n<\/ul><\/li>\n<li>Exclude Post Types from possible redirections.<\/li>\n<li>Exclude Taxonomies from possible redirections.<\/li>\n<li>Exclude Posts based on a custom post meta.<\/li>\n<li>Exclude Terms based on a custom term meta.<\/li>\n<li>Display the Debug Console instead of being redirected (Admin).<\/li>\n<li>Preview possible redirection from the administration panel.<\/li>\n<\/ul>\n\n<h4>*New* Features:<\/h4>\n\n<ul>\n<li>Expose 'WP-404-Auto-Redirect' headers on 404 pages. (Admin).<\/li>\n<li>Log redirections in the \/wp-content\/debug.log file.<\/li>\n<li>Create your own search engines logic.<\/li>\n<li>Create your own search engines groups &amp; fire sequence.<\/li>\n<\/ul>\n\n<h4>*New* Engines &amp; Groups:<\/h4>\n\n<p>WP 404 Auto Redirect to Similar Post 1.0 introduces the concept of engines and groups which let you customize your own searching &amp; matching logic. The plugin comes with 5 engines and 1 default group out of the box!<\/p>\n\n<p>Default Group Engines:<\/p>\n\n<ol>\n<li><p>Fix URL\nFind and fix common URL mistakes.<\/p><\/li>\n<li><p>Direct Match\nSearch for a Post that perfectly match keywords.<\/p><\/li>\n<li><p>Search Post\nSearch for a similar Post.<\/p><\/li>\n<li><p>Search Term\nSearch for a similar Term.<\/p><\/li>\n<li><p>Search Post: Fallback\nIf a Post Type is set in the WP Query, redirect to the Post Type Archive.<\/p><\/li>\n<\/ol>\n\n<h4>But Also:<\/h4>\n\n<ul>\n<li>Easy to Install \/ Uninstall.<\/li>\n<li>No useless data saved in Database.<\/li>\n<li>Blazing Fast Performance.<\/li>\n<\/ul>\n\n<h4>Compatibility:<\/h4>\n\n<p>WP 404 Auto Redirect to Similar Post is 100% compatible with all popular manual redirection plugins:<\/p>\n\n<ul>\n<li><a href=\"https:\/\/wordpress.org\/plugins\/redirection\/\">Redirection<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.org\/plugins\/simple-301-redirects\/\">Simple 301 Redirects<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.org\/plugins\/seo-by-rank-math\/\">RankMath Redirections<\/a><\/li>\n<li><a href=\"https:\/\/yoast.com\/wordpress\/plugins\/seo\/redirects-manager\/\">Yoast Redirections<\/a><\/li>\n<li>etc...<\/li>\n<\/ul>\n\n<p>If you use one of them, but missed a manual redirection and a 404 is about to be displayed, WP 404 Auto Redirect to Similar Post will cover you.<\/p>\n\n<h3>Reviews<\/h3>\n\n<p>They talk about us! :)<\/p>\n\n<ul>\n<li><a href=\"https:\/\/sebastienpierrepack.com\/plugins-corriger-404-wordpress\/\">Quels plugins utiliser pour corriger les erreurs 404 sous WordPress ?<\/a><\/li>\n<li><a href=\"https:\/\/www.formget.com\/404-redirect-wordpress-plugins\/\">6+ 404 Redirect WordPress Plugins 2018 (Free and Paid)<\/a><\/li>\n<li><a href=\"https:\/\/uproer.com\/articles\/best-seo-plugins-wordpress\/\">12 Best Free SEO Plugins for WordPress<\/a><\/li>\n<li><a href=\"https:\/\/wpstuff.org\/plugins\/recommended-plugins-for-wordpress\/\">Recommended Plugins for WordPress<\/a><\/li>\n<li><a href=\"http:\/\/blogingenuity.com\/top-wordpress-plugins-i-cant-do-without\/\">Top WordPress Plugins I Can\u2019t Do Without<\/a><\/li>\n<li><a href=\"http:\/\/bhaaratham.com\/permalink-finder-plugin-sanitize_url-is-deprecated\/\">Permalink Finder Plugin is deprecated<\/a><\/li>\n<li><a href=\"https:\/\/www.seosatu.com\/optimalkan-seo-dengan-halaman-404\/\">Membuat halaman Error 404 menjadi SEO friendly<\/a><\/li>\n<li><a href=\"https:\/\/www.littlemissgemtravels.com\/ultimate-guide-to-starting-a-travel-blog\/\">The Ultimate Guide to Starting a Travel Blog<\/a><\/li>\n<li><a href=\"https:\/\/sayoho.com\/80-best-wordpress-plugins-for-2018\/\">80  Best WordPress Plugins for 2018<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>WordPress Install<\/h4>\n\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/wp-404-auto-redirect-similar-post<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Go to Settings &gt; WP 404 Auto Redirect to change your settings.<\/li>\n<li>Everything is ready! Now try to trigger a 404 page!<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='developers%3A%20create%20a%20custom%20group'><h3>Developers: Create a Custom Group<\/h3><\/dt>\n<dd><p><strong>Advanced Usage:<\/strong> If you don't know how to use filters &amp; actions, please read the official <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\">WordPress Plugin API<\/a>.<\/p>\n\n<pre><code>\/\/ Create a Group with only 3 Default Engines, and set a custom fire sequence\nadd_action('wp404arsp\/search\/init', 'my_404_group');\nfunction my_404_group($query){\n\n    wp404arsp_register_group(array(\n\n        \/\/ Set Group Name\n        'name' =&gt; 'My Group',\n\n        \/\/ Set Group Slug\n        'slug' =&gt; 'my_group',\n\n        \/\/ Set Engines &amp; the fire sequence\n        'engines' =&gt; array(\n            'default_post',     \/\/ Add Default: Search Post Engine\n            'default_fix_url',  \/\/ Add Default: Fix URL Engine\n            'default_direct',   \/\/ Add Default: Default: Direct Match Engine\n        )\n\n    ));\n\n}\n\n\/\/ Trigger the Custom Group: 'My Group' when the 404 Page URL starts with '\/product\/xxxx\/'\nadd_filter('wp404arsp\/search\/group', 'my_404_group_trigger', 10, 2);\nfunction my_404_group_trigger($group, $query){\n\n    \/\/ Developers: Print $query array for more request context\n\n    \/\/ Our condition: 404 Page URL starts with '\/product\/xxxx\/'\n    if(preg_match('#\/product\/(.+?)\/?$#i', $query['request']['url'])){\n        $group = 'my_group'; \/\/ My Group Slug\n    }\n\n    \/\/ Always return Group\n    return $group;\n\n}\n<\/code><\/pre><\/dd>\n<dt id='developers%3A%20create%20a%20custom%20engine'><h3>Developers: Create a Custom Engine<\/h3><\/dt>\n<dd><p><strong>Advanced Usage:<\/strong> If you don't know how to use filters &amp; actions, please read the official <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\">WordPress Plugin API<\/a>.<\/p>\n\n<pre><code>\/\/ Create a Custom Engine\nadd_action('wp404arsp\/search\/init', 'my_404_group_engine');\nfunction my_404_group_engine($query){\n\n    wp404arsp_register_engine(array(\n\n        \/\/ Set Engine Name\n        'name' =&gt; 'My Engine',\n\n        \/\/ Set Engine Slug\n        'slug' =&gt; 'my_engine',\n\n        \/\/ Set Engine Weight (Score = Keyword_Found * Weight)\n        'weight' =&gt; 100,\n\n        \/\/ Set Primary Option (true|false). If Primary is true, then stop fire sequence if the score &gt; 0.\n        'primary' =&gt; true\n\n    ));\n\n    \/\/ Use the engine in a new Group called 'My Group'\n    wp404arsp_register_group(array(\n\n        \/\/ Set Group Name\n        'name' =&gt; 'My Group',\n\n        \/\/ Set Group Slug\n        'slug' =&gt; 'my_group',\n\n        \/\/ Set Engines &amp; the fire sequence\n        'engines' =&gt; array(\n            'my_engine', \/\/ Add My Engine\n        )\n\n    ));\n\n}\n\n\/\/ Trigger the Custom Group: 'My Group' when the 404 Page URL starts with '\/product\/xxxx\/'\nadd_filter('wp404arsp\/search\/group', 'my_404_group_trigger', 10, 2);\nfunction my_404_group_trigger($group, $query){\n\n    \/\/ Developers: Print $query array for more request context\n\n    \/\/ Our condition: 404 Page URL starts with '\/product\/xxxx\/'\n    if(preg_match('#\/product\/(.+?)\/?$#i', $query['request']['url'])){\n        $group = 'my_group'; \/\/ My Group Slug\n    }\n\n    \/\/ Always return Group\n    return $group;\n\n}\n\n\/\/ Define a Custom Engine Logic\nadd_filter('wp404arsp\/search\/engine\/my_engine', 'my_404_engine_definition', 10, 3);\nfunction my_404_engine_definition($result, $query, $group){\n\n    \/\/ Developers: Print $query array for more request context\n\n    \/\/ You have access to $query &amp; the current $group as a context for the engine logic\n    \/\/ In this example 'My Engine' is the only engine in 'My Group'\n    \/\/ 'My Group' is triggered when the 404 Page URL starts with '\/product\/xxxx\/'\n\n    \/\/ What we want: Search for a similar post inside a specific Post Type: 'project'\n\n    \/\/ Grab all Keywords in the URL\n    $keywords = explode('-', $query['request']['keywords']['all']);\n\n    \/\/ Run Search\n    $search = wp404arsp_search(array(\n        'keywords'  =&gt; $keywords,   \/\/ Add keywords\n        'mode'      =&gt; 'post',      \/\/ Search for Post\n        'post_type' =&gt; 'project',   \/\/ inside Post Type: 'project'\n    ), $query);\n\n    \/\/ Found something!\n    if($search['score'] &gt; 0){\n\n        \/\/ Return result\n        return array(\n            'score' =&gt; $search['score'],\n            'url'   =&gt; get_permalink($search['post_id']),\n            'why'   =&gt; \"This engine is Awesome! We found a similar Product inside the Post Type &lt;strong&gt;project&lt;\/strong&gt;!\"\n        );\n\n    }\n\n    \/\/ Nothing found :(\n    else{\n\n        return \"Mehh... No similar Product found inside the Post Type &lt;strong&gt;project&lt;\/strong&gt;.\";\n\n    }\n\n}\n<\/code><\/pre><\/dd>\n<dt id='developers%3A%20manipulate%20existing%20groups%20%26%20engines'><h3>Developers: Manipulate existing Groups &amp; Engines<\/h3><\/dt>\n<dd><p><strong>Advanced Usage:<\/strong> If you don't know how to use filters &amp; actions, please read the official <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\">WordPress Plugin API<\/a>.<\/p>\n\n<pre><code>add_action('wp404arsp\/search\/init', 'my_404_manipulate_groups_and_engines');\nfunction my_404_manipulate_groups_and_engines($query){\n\n    \/\/ Move the default engine 'Direct Match' at the end of the 'Default Group' fire Sequence\n    wp404arsp_reorder_group_engines(array(\n\n        \/\/ Target Group Slug\n        'group' =&gt; 'default',\n\n        \/\/ Target Engine Slug\n        'engine' =&gt; 'default_direct',\n\n        \/\/ Set new Position in fire sequence. (In this example: 4 instead of 2).\n        'order' =&gt; 4\n\n    ));\n\n    \/\/ Register new Engines &amp; Fire Sequence for the existing Group 'My Group'\n    wp404arsp_register_group_engines(array(\n\n        \/\/ Target Group Slug\n        'group' =&gt; 'my_group',\n\n        \/\/ New Engines &amp; Fire Sequence\n        'engines' =&gt; array(\n            'my_engine',    \/\/ Add Custom: My Engine\n            'default_post'  \/\/ Add Default: Search Post Engine\n        )\n\n    ));\n\n    \/\/ Deregister an existing Engine.\n    \/\/ The engine will be removed from any Groups which use it. The engine won't be registered anymore.\n\n    \/\/ Target specific Engine Slug\n    wp404arsp_deregister_engine('my_another_engine');\n\n}\n<\/code><\/pre><\/dd>\n<dt id='developers%3A%20always%20use%20a%20custom%20group'><h3>Developers: Always use a custom Group<\/h3><\/dt>\n<dd><p><strong>Advanced Usage:<\/strong> If you don't know how to use filters &amp; actions, please read the official <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\">WordPress Plugin API<\/a>.<\/p>\n\n<pre><code>\/\/ Always trigger the Custom Group 'My Group' instead of the Default Group\nadd_filter('wp404arsp\/search\/group', 'my_404_group_trigger_forever', 10, 2);\nfunction my_404_group_trigger_forever($group, $query){\n\n    \/\/ Developers: Print $query array for more request context\n\n    \/\/ Always return 'My Group'\n    return 'my_group';\n\n}\n<\/code><\/pre><\/dd>\n<dt id='developers%3A%20disable%20the%20plugin%20initialization%20at%20some%20conditions'><h3>Developers: Disable the plugin initialization at some conditions<\/h3><\/dt>\n<dd><p><strong>Advanced Usage:<\/strong> If you don't know how to use filters &amp; actions, please read the official <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\">WordPress Plugin API<\/a>.<\/p>\n\n<pre><code>\/\/ Do not load the plugin if the 404 URL starts with '\/calendar\/xxxx\/'\nadd_filter('wp404arsp\/init', 'my_404_no_init', 10, 2);\nfunction my_404_no_init($init, $query){\n\n    \/\/ Developers: Print $query array for more request context\n\n    if(preg_match('#\/calendar\/(.+?)\/?$#i', $query['request']['url'])){\n        $init = false;\n    }\n\n    return $init;\n\n}\n<\/code><\/pre><\/dd>\n<dt id='developers%3A%20send%20an%20e-mail%20after%20every%20redirection'><h3>Developers: Send an e-mail after every redirection<\/h3><\/dt>\n<dd><p><strong>Advanced Usage:<\/strong> If you don't know how to use filters &amp; actions, please read the official <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\">WordPress Plugin API<\/a>.<\/p>\n\n<pre><code>\/\/ Do something after a redirection\nadd_action('wp404arsp\/after_redirect', 'my_404_after_redirect');\nfunction my_404_after_redirect($query){\n\n    \/\/ Developers: Print $query array for more request context\n\n    \/\/ Send me an e-mail\n    wp_mail(\n        'my@email.com', \n        'WP 404 Auto Redirect: New redirection', \n        'Hi! New redirection from ' . $args['request']['url'] . ' to ' . $query['redirection']['url'], \n        array('Content-Type: text\/html; charset=UTF-8')\n    );\n\n    return;\n}\n<\/code><\/pre><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Fix: Escaping priority value in settings<\/li>\n<li>Fix: PHP 8.3 deprecated creation of dynamic property<\/li>\n<li>General: Bumped WordPress version to 6.8<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Fix: Escaping URL in Debug Console<\/li>\n<li>General: Bumped WordPress version to 6.5<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Fix: Security issue<\/li>\n<li>Fix: Fallback &amp; Preview inputs sanitization<\/li>\n<li>Improvement: Code formatting and comments<\/li>\n<li>Improvement: Readme typo, code example formatting and RankMath compatibility<\/li>\n<li>General: Bumped WordPress version to 6.4<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Improvement: Enhanced search algorithm &amp; matching<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix: Request sanitization compatibility for nginx servers<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix: Priority exception when it equals 0<\/li>\n<li>Fix: Settings page link missing from plugins page<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>Added: Log redirections in the \/wp-content\/debug.log file.<\/li>\n<li>Added: Expose 'WP-404-Auto-Redirect' headers on 404 pages. (Admin).<\/li>\n<li>Added: Groups &amp; Engines Feature.<\/li>\n<li>Added: Groups &amp; Engines Documentation &amp; Examples (developers).<\/li>\n<li>Added: Groups &amp; Engines Admin panel.<\/li>\n<li>Added: Index.php file redirecting to root domain (avoid plugin folder file listing).<\/li>\n<li>Added: <code>action('wp404arsp\/search\/init', $query)<\/code><\/li>\n<li>Added: <code>filter('wp404arsp\/search\/group', $group, $query)<\/code><\/li>\n<li>Added: <code>filter('wp404arsp\/search\/query', $query)<\/code><\/li>\n<li>Added: <code>filter('wp404arsp\/search\/engine\/{engine}', $result, $query, $group)<\/code><\/li>\n<li>Added: <code>filter('wp404arsp\/search\/results', $query)<\/code><\/li>\n<li>Added: <code>filter('wp404arsp\/search\/redirect', $redirect, $query)<\/code><\/li>\n<li>Improvement: Core reworked from scratch for better extensibility.<\/li>\n<li>Removed: 'Hooks' tab<\/li>\n<\/ul>\n\n<h4>0.9.0.2<\/h4>\n\n<ul>\n<li>Fix: Plugin priority set to 999 by debault<\/li>\n<li>Added: New Filter available <code>('wp404arsp\/init', $init, $request_uri)<\/code><\/li>\n<li>Added: Filters &amp; Actions documentation<\/li>\n<li>Added: Hooks tab documentation in Administration panel<\/li>\n<li>Improvement: Plugin's page description<\/li>\n<li>Removed: Unnecessary filter <code>('wp404arsp\/settings', $settings)<\/code><\/li>\n<\/ul>\n\n<h4>0.9.0.1<\/h4>\n\n<ul>\n<li>Fix: Paged request redirection \"Uncaught Argument\" error<\/li>\n<\/ul>\n\n<h4>0.9<\/h4>\n\n<ul>\n<li>Fix: 302 headers option would not save<\/li>\n<li>Fix: Redirection loop in some specific cases - Direct match on private posts<\/li>\n<li>Fix: Ajax URL for custom <code>\/wp-admin\/<\/code> path (Preview Mode)<\/li>\n<li>Added: New Filter available <code>('wp404arsp\/settings', $settings)<\/code><\/li>\n<li>Added: New Filter available <code>('wp404arsp\/redirect', $args, $settings)<\/code><\/li>\n<li>Added: New Action available <code>('wp404arsp\/after_redirect', $args, $settings)<\/code><\/li>\n<li>Added: New page header 'WP-404-Auto-Redirect: true' on redirection<\/li>\n<li>Added: Exclude posts with the post meta: <code>wp404arsp_no_redirect = 1<\/code> from possible redirections.<\/li>\n<li>Added: Exclude terms with the term meta: <code>wp404arsp_no_redirect = 1<\/code> from possible redirections.<\/li>\n<li>Added: Exclude one or multiple taxonomies from possible redirections.<\/li>\n<li>Added: Disable Taxonomy Redirection - Never redirect to terms archives.<\/li>\n<li>Added: Plugin priority - Advanced users only (Default 999).<\/li>\n<li>Improvement: Revamped code<\/li>\n<li>Improvement: Administration panel with tabs<\/li>\n<li>Improvement: Plugin is now translation ready<\/li>\n<\/ul>\n\n<h4>0.7.7<\/h4>\n\n<ul>\n<li>Fix: PHP header() error on upgrade<\/li>\n<li>Fix: Exclude Post Type from Redirections UI &amp; Logic<\/li>\n<li>Fix: 'Compatibility' typo in description<\/li>\n<li>Added: 999 priority on template_redirect action for compatibility<\/li>\n<li>Improvement: Updated Plugin Screenshot<\/li>\n<\/ul>\n\n<h4>0.7.6<\/h4>\n\n<ul>\n<li>Fix: Typos &amp; added better descriptions<\/li>\n<li>Fix: minor PHP Notice<\/li>\n<li>Added: \"Custom Redirect URL\" as Fallback Behavior (Feature Request)<\/li>\n<li>Added: \"Exclude Post Type\" Multi-select to possible redirections (Feature Request)<\/li>\n<li>Improvement: Better overall request validation<\/li>\n<\/ul>\n\n<h4>0.7.2<\/h4>\n\n<ul>\n<li>Added: Re-introduced Term search as fallback (if no similar post found)<\/li>\n<li>Improvement: Direct match algorythm<\/li>\n<li>Improvement: Sanitization of requests with an extension<\/li>\n<li>Improvement: Post_type matching to only search \"active\" post_types<\/li>\n<\/ul>\n\n<h4>0.7.1<\/h4>\n\n<ul>\n<li>Fix: Bug while displaying legacy 404<\/li>\n<li>Fix: PHP notice on preview mode<\/li>\n<li>Improvement: Post Types handle<\/li>\n<li>Improvement: Paged request handle<\/li>\n<\/ul>\n\n<h4>0.7<\/h4>\n\n<ul>\n<li>Added: Settings page<\/li>\n<li>Added: Debug mode for administrators (settings page)<\/li>\n<li>Added: Ability to disable \"Redirect to Homepage\" if nothing found (Feature request)<\/li>\n<li>Added: Ability to choose between 301 or 302 HTTP Headers<\/li>\n<li>Added: Ability preview URL Redirections<\/li>\n<li>Improvement: Reworked code<\/li>\n<\/ul>\n\n<h4>0.4.0.2<\/h4>\n\n<ul>\n<li>Fix: Sanitization bug<\/li>\n<li>Fix: Debug typo<\/li>\n<\/ul>\n\n<h4>0.4<\/h4>\n\n<ul>\n<li>Improvement: Revamped Code<\/li>\n<li>Improvement: Processing speed<\/li>\n<li>Improvement: Better Post Type \/ Category \/ Taxonomy matching<\/li>\n<\/ul>\n\n<h4>0.3.2<\/h4>\n\n<ul>\n<li>Added: Debug monitoring<\/li>\n<li>Improvement: Better management of paged requests<\/li>\n<\/ul>\n\n<h4>0.3<\/h4>\n\n<ul>\n<li>Initial Release<\/li>\n<\/ul>","raw_excerpt":"Automatically Redirect any 404 page to a Similar Post based on the Title Post Type &amp; Taxonomy using 301 or 302 Redirects!","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/67591","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=67591"}],"author":[{"embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/hwk-fr"}],"wp:attachment":[{"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=67591"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=67591"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=67591"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=67591"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=67591"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=67591"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}