[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fdDyPOV2hapGdMilns4XJG5mxszM4qX-9arA6fL1uqQU":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":29,"last_vuln_date":30,"fetched_at":31,"vulnerabilities":32,"developer":76,"crawl_stats":38,"alternatives":81,"analysis":176,"fingerprints":782},"quick-pagepost-redirect-plugin","Quick Page\u002FPost Redirect Plugin","5.2.4","anadnet","https:\u002F\u002Fprofiles.wordpress.org\u002Fanadnet\u002F","\u003Cp>\u003Cstrong>Current Version 5.2.4\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>This plugin has two redirect functionalities – \u003Cstrong>“Quick Redirects”\u003C\u002Fstrong> and \u003Cstrong>“Individual Redirects”\u003C\u002Fstrong>:\u003C\u002Fp>\n\u003Ch4>QUICK REDIRECTS (301 Redirects)\u003C\u002Fh4>\n\u003Cp>Quick Redirects are designed to be quick and simple to add. You do not need to have an existing page or post set up to add one. You just put the Request URL and the Destination URL and the plugin will redirect it. This type of redirect is great for fixing typos when a page was created, redirecting old URLs to a new URL so there is no 404, and to redirect links from an old site that has been converted to WordPress.\u003C\u002Fp>\n\u003Ch4>INDIVIDUAL REDIRECTS (for existing pages\u002Fposts)\u003C\u002Fh4>\n\u003Cp>For pages\u002Fposts that already exist, the plugin adds an option meta box to the edit screen where you can specify the redirect location and type (301, 302 or meta). This type of redirect is useful for many things, including menu items, duplicate posts, or just redirecting a page to a different URL or location on your existing site.\u003C\u002Fp>\n\u003Cp>For best results use some form of WordPress Permalink structure. If you have other Redirect plugins installed, it is recommended that you use only one redirect plugin or they may conflict with each other or one may take over before the other can do its job.\u003C\u002Fp>\n\u003Ch4>What You CAN Do (aka, Features):\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Works with WordPress Nav Menus\u003C\u002Fli>\n\u003Cli>Works with WordPress Custom Post Types (select setting on options page)\u003C\u002Fli>\n\u003Cli>You can set a redirected page or menu item to open in a new window (Quick Redirects require \u003Cstrong>Use jQuery?\u003C\u002Fstrong> option to be set)\u003C\u002Fli>\n\u003Cli>You can add a \u003Cem>rel=”nofollow”\u003C\u002Fem> attribute to the page or menu item link for the redirect (Quick Redirects require \u003Cstrong>Use jQuery?\u003C\u002Fstrong> option to be set)\u003C\u002Fli>\n\u003Cli>You can completely re-write the URL for the redirect so it takes the place of the original URL (rewrite the href link)\u003C\u002Fli>\n\u003Cli>You can redirect without needing to create a Page or Post using Quick Redirects. This is useful for sites that were converted to WordPress and have old links that create 404 errors (see FAQs for more information).\u003C\u002Fli>\n\u003Cli>Destination URL can be to another WordPress page\u002Fpost or any other website with an external URL.\u003C\u002Fli>\n\u003Cli>Request URL can be a full URL path, the post or page ID, permalink or page slug.\u003C\u002Fli>\n\u003Cli>Option Screen to set global overrides like turning off all redirects at once, setting a global destination link, make all redirects open in a new window, etc.\u003C\u002Fli>\n\u003Cli>View a summary of all redirected pages\u002Fposts, custom post types and Quick Redirects that are currently set up.\u003C\u002Fli>\n\u003Cli>Plugin Clean up functions for those who decide they may want to remove all plugin data on uninstall.\u003C\u002Fli>\n\u003Cli>Import\u002FExport of redirects for backup, or to add bulk Quick Redirects.\u003C\u002Fli>\n\u003Cli>Built-in FAQs\u002FHelp feed that can be updated daily with relevant questions.\u003C\u002Fli>\n\u003Cli>Optional column for list pages to easily show if a page\u002Fpost has a redirect set up and where it will redirect to.\u003C\u002Fli>\n\u003Cli>Helper functions for adding or deleting redirects programmatically (see ‘filters-hooks-helper_functions.txt’ file in plugin folder for help and usage).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>What You CANNOT Do:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>This plugin does not have wild-card redirect features.\u003C\u002Fli>\n\u003Cli>This plugin DOES NOT modify the .htaccess file. It works using the WordPress function wp_redirect(), which is a form of PHP header location redirect.\u003C\u002Fli>\n\u003Cli>You cannot redirect the Home (Posts) page – unless you set a page as the home page and redirect that.\u003C\u002Fli>\n\u003Cli>If your theme uses some form of custom layout or functionality, some features may not work like open on a new window or no follow functionality UNLESS you have the \u003Cstrong>Use jQuery?\u003C\u002Fstrong> option to set.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This plugin is not compatible with WordPress versions less than 4.0. Requires PHP 5.2+.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>PLEASE NOTE:\u003C\u002Fstrong> A new page or post needs to be Published in order for Page\u002FPost redirect to happen for Individual Redirects (existing page is not necessary for Quick Redirects). It WILL work on a DRAFT Status Post\u002FPage ONLY, and I mean ONLY, if the Post\u002FPage has FIRST been Published and the re-saved as a Draft. This does not apply to Quick Redirects.\u003C\u002Fp>\n\u003Ch4>TROUBLESHOOTING:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>To include custom post types, check the setting on the plugin option page – and you also can hide it from post types you don’t want it on.\u003C\u002Fli>\n\u003Cli>If you experience jQuery conflicts with the plugin, try turning off the \u003Cstrong>Use jQuery?\u003C\u002Fstrong> setting in the options page. BUT, please note that if this option if off, the new window and no follow functionality may be inconsistent (this mainly depends on how your theme is set up)\u003C\u002Fli>\n\u003Cli>If you check the box for “Show Redirect URL below” on the edit page, please note that you MUST use the full URL in the Redirect URL box. If you do not, you may experience some odd links and 404 pages, as this option changes the link for the page\u002Fpost to the EXACT URL you enter in that field. (i.e., if you enter ‘2’ in the field, it will redirect to ‘http:\u002F\u002F2’ which is not the same as ‘http:\u002F\u002Fyoursite.com\u002F?p=2’).\u003C\u002Fli>\n\u003Cli>If your browser tells you that your are in an infinite loop, check to make sure you do not have pages redirecting to another page that redirects back to the initial page. That WILL cause an infinite loop.\u003C\u002Fli>\n\u003Cli>If you are using the Quick Redirects method to do your redirects, try to use Request URLs that start with a ‘\u002F’ and are relative to the root (i.e., ‘http:\u002F\u002Fmysite.com\u002Ftest\u002F’ should be set to ‘\u002Ftest\u002F’ for the request field).\u003C\u002Fli>\n\u003Cli>If your site uses mixes SSL, use relative links whenever possible (i.e., ‘\u002Fmy-page\u002F’). The plugin is designed to detect the incoming protocol and try to apply the appropriate protocol to the destination URL.\u003C\u002Fli>\n\u003Cli>Links in page\u002Fpost content and links that are created using get_permalink() or the_permalink() will not open in a new window or add the rel=nofollow UNLESS you have the \u003Cstrong>Use jQuery?\u003C\u002Fstrong> option set.\u003C\u002Fli>\n\u003Cli>If your page or post is not redirecting, this is most likely because something else like the theme functions file or another plugin is outputting the header BEFORE the plugin can perform the redirect. This can be tested by turning off all plugins except the Quick Page\u002FPost Redirect Plugin and testing if the redirect works. Many times a plugin or bad code is the culprit.\u003C\u002Fli>\n\u003Cli>We try to test the plugin in many popular themes and alongside popular plugins. In our experience, (with exception to a few bugs from time to time) many times another plugin is the cause of the issues – or a customized theme. If you do notice a problem, please let us know at info@anadnet.com – along with the WP version, theme you are using and plugins you have installed – and we will try to troubleshoot the problem.\u003C\u002Fli>\n\u003Cli>Check the FAQs\u002FHelp located in the Plugin menu for more up to date issues and fixes.\u003C\u002Fli>\n\u003C\u002Ful>\n","Easily redirect pages\u002Fposts or custom post types to another page\u002Fpost or external URL by specifying the redirect URL and type (301, 302, 307, meta).",70000,2345276,88,146,"2023-06-08T10:47:00.000Z","6.2.9","4.0","",[20,21,22,23,24],"301","302","forward","meta","redirect","http:\u002F\u002Fwww.anadnet.com\u002Fquick-pagepost-redirect-plugin\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fquick-pagepost-redirect-plugin.5.2.4.zip",83,3,0,"2023-05-12 00:00:00","2026-03-15T15:16:48.613Z",[33,48,62],{"id":34,"url_slug":35,"title":36,"description":37,"plugin_slug":4,"theme_slug":38,"affected_versions":39,"patched_in_version":6,"severity":40,"cvss_score":41,"cvss_vector":42,"vuln_type":43,"published_date":30,"updated_date":44,"references":45,"days_to_patch":47},"CVE-2023-25063","quick-pagepost-redirect-authenticated-administrator-stored-cross-site-scripting-via-settings","Quick Page\u002FPost Redirect \u003C= 5.2.3 - Authenticated (Administrator+) Stored Cross-Site Scripting via settings","The Quick Page\u002FPost Redirect plugin for WordPress is vulnerable to Stored Cross-Site Scripting via plugin settings in versions up to, and including, 5.2.3 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with administrator-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This only impacts multi-site installations and installations where unfiltered_html has been disabled.",null,"\u003C=5.2.3","medium",4.4,"CVSS:3.1\u002FAV:N\u002FAC:H\u002FPR:H\u002FUI:N\u002FS:C\u002FC:L\u002FI:L\u002FA:N","Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')","2024-01-22 19:56:02",[46],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002Fbe841d6b-e3b6-46d2-aba8-fee20c21e933?source=api-prod",256,{"id":49,"url_slug":50,"title":51,"description":52,"plugin_slug":4,"theme_slug":38,"affected_versions":53,"patched_in_version":54,"severity":40,"cvss_score":55,"cvss_vector":56,"vuln_type":57,"published_date":58,"updated_date":44,"references":59,"days_to_patch":61},"CVE-2020-36699","quick-pagepost-redirect-plugin-redirect-security-bypass","Quick Page\u002FPost Redirect Plugin \u003C= 5.1.9 - Redirect Security Bypass","The Quick Page\u002FPost Redirect Plugin for WordPress is vulnerable to authorization bypass due to missing capability checks on the qppr_save_quick_redirect_ajax and qppr_delete_quick_redirect functions in versions up to, and including, 5.1.9. This makes it possible for low-privileged attackers to interact with the plugin settings and to create a redirect link that would forward all traffic to an external malicious website.","\u003C=5.1.9","5.2.0",4.3,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:L\u002FUI:N\u002FS:U\u002FC:N\u002FI:L\u002FA:N","Improper Access Control","2020-04-28 00:00:00",[60],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F11c4b855-8589-4ad2-b414-566ac8eb4632?source=api-prod",1365,{"id":63,"url_slug":64,"title":65,"description":66,"plugin_slug":4,"theme_slug":38,"affected_versions":67,"patched_in_version":68,"severity":69,"cvss_score":70,"cvss_vector":71,"vuln_type":43,"published_date":72,"updated_date":44,"references":73,"days_to_patch":75},"CVE-2014-2598","quick-pagepost-redirect-plugin-cross-site-request-forgery-to-stored-cross-site-scripting","Quick Page\u002FPost Redirect Plugin \u003C 5.0.5 - Cross-Site Request Forgery to Stored Cross-Site Scripting","Cross-site request forgery (CSRF) vulnerability in the Quick Page\u002FPost Redirect plugin before 5.0.5 for WordPress allows remote attackers to hijack the authentication of administrators for requests that conduct cross-site scripting (XSS) attacks via the quickppr_redirects[request][] parameter in the redirect-updates page to wp-admin\u002Fadmin.php.","\u003C5.0.5","5.0.5","high",7.1,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:N\u002FUI:R\u002FS:C\u002FC:L\u002FI:L\u002FA:L","2014-08-01 00:00:00",[74],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F0b6e9430-bb78-47c3-9958-4f40028c3d93?source=api-prod",3462,{"slug":7,"display_name":7,"profile_url":8,"plugin_count":77,"total_installs":11,"avg_security_score":27,"avg_patch_time_days":78,"trust_score":79,"computed_at":80},1,1694,67,"2026-04-04T14:41:44.652Z",[82,103,118,138,158],{"slug":83,"name":84,"version":85,"author":86,"author_profile":87,"description":88,"short_description":89,"active_installs":90,"downloaded":91,"rating":92,"num_ratings":93,"last_updated":94,"tested_up_to":95,"requires_at_least":96,"requires_php":18,"tags":97,"homepage":100,"download_link":101,"security_score":102,"vuln_count":29,"unpatched_count":29,"last_vuln_date":38,"fetched_at":31},"redirect-list","Redirect List","1.8","MembershipWorks","https:\u002F\u002Fprofiles.wordpress.org\u002Fsourcefound\u002F","\u003Cp>Lightweight and clean Redirect plugin performs HTTP redirection, and supports matching of GET query parameters without regular expressions (for those pesky ?page=123 or ?\u003Cem>escaped_fragment\u003C\u002Fem>=xxx urls).\u003C\u002Fp>\n\u003Cul>\n\u003Cli>No advertising, links or tracking code.\u003C\u002Fli>\n\u003Cli>Lightweight code (~100 LOC).\u003C\u002Fli>\n\u003Cli>301, 302 or 307 HTTP redirect.\u003C\u002Fli>\n\u003Cli>Specify from and destination urls in a list manually.\u003C\u002Fli>\n\u003Cli>Does not require creating a custom page.\u003C\u002Fli>\n\u003Cli>Match url regardless of GET parameters.\u003C\u002Fli>\n\u003Cli>Match url only if no GET parameter exists.\u003C\u002Fli>\n\u003Cli>Match url only if GET parameter exists (value does not matter).\u003C\u002Fli>\n\u003Cli>Match url only if GET parameter exists and value matches.\u003C\u002Fli>\n\u003Cli>Does not support Multisite (sorry!).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>A free plugin from the workshop of \u003Ca href=\"https:\u002F\u002Fmembershipworks.com\" rel=\"nofollow ugc\">MembershipWorks\u003C\u002Fa>. Serbian translation thanks to Ogi Djuraskovic \u003Ca href=\"http:\u002F\u002Ffirstsiteguide.com\u002F\" rel=\"nofollow ugc\">firstsiteguide.com\u003C\u002Fa>.\u003C\u002Fp>\n","A really lightweight, clean and simple 301, 302 or 307 HTTP redirect plugin that also supports matching of GET query parameters.",1000,31980,100,8,"2022-05-30T11:05:00.000Z","6.0.11","3.0.1",[20,21,98,99,24],"307","forwarding","https:\u002F\u002Fmembershipworks.com\u002Fredirect-list-wordpress\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fredirect-list.1.8.zip",85,{"slug":104,"name":105,"version":106,"author":107,"author_profile":108,"description":109,"short_description":110,"active_installs":111,"downloaded":112,"rating":29,"num_ratings":29,"last_updated":113,"tested_up_to":114,"requires_at_least":17,"requires_php":18,"tags":115,"homepage":18,"download_link":117,"security_score":92,"vuln_count":29,"unpatched_count":29,"last_vuln_date":38,"fetched_at":31},"1on1-url-redirects","1ON1 URL REDIRECTS","0.8","Marketing1on1","https:\u002F\u002Fprofiles.wordpress.org\u002Fmarketing1on1com\u002F","\u003Cp>301 Redirects with Tags to post redirection option, which means when you view the tag it redirects to the assigned post \u002F page of the tag which helps with SEO and resolves duplicate content issue.\u003Cbr \u002F>\nThis plugin has three redirect functionalities – \u003Cstrong>“URL Redirects”\u003C\u002Fstrong>, \u003Cstrong>“Individual Redirects”\u003C\u002Fstrong> and \u003Cstrong>“Global Tag Redirects”\u003C\u002Fstrong>:\u003C\u002Fp>\n\u003Ch4>URL REDIRECTS\u003C\u002Fh4>\n\u003Cp>URL Redirects are designed to be fast and simple to add.\u003Cbr \u002F>\nYou do not need to have an existing page or post set up to add one.\u003Cbr \u002F>\nYou just put the Request URL and the Destination URL and the plugin will redirect it.\u003Cbr \u002F>\nThis type of redirect is great for fixing typos when a page was created, redirecting old URLs to a new URL so there is no 404, and to redirect links from an old site that has been converted to WordPress.\u003C\u002Fp>\n\u003Ch4>INDIVIDUAL REDIRECTS (for existing pages\u002Fposts)\u003C\u002Fh4>\n\u003Cp>For pages\u002Fposts that already exist, the plugin adds a meta box to the edit screen where you can specify the redirect location and type. This type of redirect is useful for many things, including menu items, duplicate posts, or just redirecting a page to a different URL or location on your existing site.\u003C\u002Fp>\n\u003Ch4>GLOBAL TAG REDIRECTS\u003C\u002Fh4>\n\u003Cp>This feature was created to eliminate one of the “duplicate issues” that wordpress creates by having the same content displayed via tags urls.\u003Cbr \u002F>\nBy checkmarking “Tag Redirection Setting” to “Enable Tag Redirection” it will redirect all of the tags to the post or page that they are assigned to.\u003Cbr \u002F>\nFor example, let’s say Tag1 is assigned to mywebsite.com\u002Fblog\u002Fmypost. By enabling “Tag Redirects” it will automatically redirect mywebsite.com\u002Ftag\u002Ftag1 to mywebsite.com\u002Fblog\u002Fmypost\u003C\u002Fp>\n\u003Cp>For best results use some form of WordPress Permalink structure. If you have other Redirect plugins installed, it is recommended that you use only one redirect plugin or they may conflict with each other or one may take over before the other can do its job.\u003C\u002Fp>\n\u003Ch4>What You CAN Do (aka, Features):\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Works with WordPress Nav Menus\u003C\u002Fli>\n\u003Cli>Works with WordPress Custom Post Types (select setting on options page)\u003C\u002Fli>\n\u003Cli>You can set a redirected page or menu item to open in a new window (Quick Redirects require \u003Cstrong>Use jQuery?\u003C\u002Fstrong> option to be set)\u003C\u002Fli>\n\u003Cli>You can add a \u003Cem>rel=”nofollow”\u003C\u002Fem> attribute to the page or menu item link for the redirect (Quick Redirects require \u003Cstrong>Use jQuery?\u003C\u002Fstrong> option to be set)\u003C\u002Fli>\n\u003Cli>You can completely re-write the URL for the redirect so it takes the place of the original URL (rewrite the href link)\u003C\u002Fli>\n\u003Cli>You can redirect without needing to create a Page or Post using Quick Redirects. This is useful for sites that were converted to WordPress and have old links that create 404 errors (see FAQs for more information).\u003C\u002Fli>\n\u003Cli>Destination URL can be to another WordPress page\u002Fpost or any other website with an external URL.\u003C\u002Fli>\n\u003Cli>Request URL can be a full URL path, the post or page ID, permalink or page slug.\u003C\u002Fli>\n\u003Cli>Option Screen to set global overrides like turning off all redirects at once, setting a global destination link, make all redirects open in a new window, etc.\u003C\u002Fli>\n\u003Cli>View a summary of all redirected pages\u002Fposts, custom post types and Quick Redirects that are currently set up.\u003C\u002Fli>\n\u003Cli>Plugin Clean up functions for those who decide they may want to remove all plugin data on uninstall.\u003C\u002Fli>\n\u003Cli>Import\u002FExport of redirects for backup, or to add bulk Quick Redirects.\u003C\u002Fli>\n\u003Cli>Optional column for list pages to easily show if a page\u002Fpost has a redirect set up and where it will redirect to.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>What You CAN NOT DO:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>This plugin does not have wild-card redirect features.\u003C\u002Fli>\n\u003Cli>This plugin DOES NOT modify the .htaccess file. It works using the WordPress function wp_redirect(), which is a form of PHP header location redirect.\u003C\u002Fli>\n\u003Cli>You cannot redirect the Home (Posts) page – unless you set a page as the home page and redirect that.\u003C\u002Fli>\n\u003Cli>If your theme uses some form of custom layout or functionality, some features may not work like open on a new window or no follow functionality UNLESS you have the \u003Cstrong>Use jQuery?\u003C\u002Fstrong> option to set.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This plugin is not compatible with WordPress versions less than 4.0. Requires PHP 5.2+.\u003C\u002Fp>\n\u003Ch4>TROUBLESHOOTING:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>To include custom post types, check the setting on the plugin option page – and you also can hide it from post types you don’t want it on.\u003C\u002Fli>\n\u003Cli>If you experience jQuery conflicts with the plugin, try turning off the \u003Cstrong>Use jQuery?\u003C\u002Fstrong> setting in the options page. BUT, please note that if this option if off, the new window and no follow functionality may be inconsistent (this mainly depends on how your theme is set up)\u003C\u002Fli>\n\u003Cli>If you check the box for “Show Redirect URL below” on the edit page, please note that you MUST use the full URL in the Redirect URL box. If you do not, you may experience some odd links and 404 pages, as this option changes the link for the page\u002Fpost to the EXACT URL you enter in that field. (i.e., if you enter ‘2’ in the field, it will redirect to ‘http:\u002F\u002F2’ which is not the same as ‘http:\u002F\u002Fyoursite.com\u002F?p=2’).\u003C\u002Fli>\n\u003Cli>If your browser tells you that your are in an infinite loop, check to make sure you do not have pages redirecting to another page that redirects back to the initial page. That WILL cause an infinite loop.\u003C\u002Fli>\n\u003Cli>If you are using the URL Redirects method to do your redirects, try to use Request URLs that start with a ‘\u002F’ and are relative to the root (i.e., ‘http:\u002F\u002Fmysite.com\u002Ftest\u002F’ should be set to ‘\u002Ftest\u002F’ for the request field).\u003C\u002Fli>\n\u003Cli>If your site uses mixes SSL, use relative links whenever possible (i.e., ‘\u002Fmy-page\u002F’). The plugin is designed to detect the incoming protocol and try to apply the appropriate protocol to the destination URL.\u003C\u002Fli>\n\u003Cli>Links in page\u002Fpost content and links that are created using get_permalink() or the_permalink() will not open in a new window or add the rel=nofollow UNLESS you have the \u003Cstrong>Use jQuery?\u003C\u002Fstrong> option set.\u003C\u002Fli>\n\u003Cli>If your page or post is not redirecting, this is most likely because something else like the theme functions file or another plugin is outputting the header BEFORE the plugin can perform the redirect. This can be tested by turning off all plugins except the 1ON1 URL Redirects Plugin and testing if the redirect works. Many times a plugin or bad code is the culprit.\u003C\u002Fli>\n\u003Cli>We try to test the plugin in many popular themes and alongside popular plugins. In our experience, (with exception to a few bugs from time to time) many times another plugin is the cause of the issues – or a customized theme.\u003C\u002Fli>\n\u003Cli>Check the FAQs\u002FHelp located in the Plugin menu for more up to date issues and fixes.\u003C\u002Fli>\n\u003C\u002Ful>\n","Easily redirect pages, posts and tags or custom post types to another page or post or external URL by specifying the redirect URL.",200,7310,"2026-01-17T16:44:00.000Z","6.8.5",[20,21,23,24,116],"tags","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002F1on1-url-redirects.zip",{"slug":119,"name":120,"version":121,"author":122,"author_profile":123,"description":124,"short_description":125,"active_installs":126,"downloaded":127,"rating":128,"num_ratings":129,"last_updated":130,"tested_up_to":131,"requires_at_least":132,"requires_php":133,"tags":134,"homepage":18,"download_link":137,"security_score":92,"vuln_count":29,"unpatched_count":29,"last_vuln_date":38,"fetched_at":31},"attachment-pages-redirect","Attachment Pages Redirect","1.1.2","Samuel Aguilera","https:\u002F\u002Fprofiles.wordpress.org\u002Fsamuelaguilera\u002F","\u003Cp>There are three possible scenarios where this plugin does something. In all cases, the attachment page must exists, \u003Cstrong>the plugin will not run for deleted attachments\u003C\u002Fstrong>:\u003C\u002Fp>\n\u003Cp>A) A visitor lands on an attachment page and the parent post is available (not in trash or deleted). A 301 redirect will be issued to redirect the visitor to the parent post.\u003C\u002Fp>\n\u003Cp>B) A visitor lands on an attachment page and the parent post was already deleted from trash. A 302 redirect is issued to home page (this can be changed to 301 if you want, see FAQ for more details).\u003C\u002Fp>\n\u003Cp>C) A visitor lands on an attachment page and the parent post is in trash, therefore not available for the visitor. It returns a 404 error code to prevent endless redirection loop in old WP releases and redirecting to trashed\u002Fnot available posts.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>There is no options page\u003C\u002Fstrong>, simply activate it and will do the job.\u003C\u002Fp>\n\u003Cp>If you’re happy with the plugin \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fattachment-pages-redirect\u002Freviews\u002F?filter=5\" rel=\"ugc\">please don’t forget to give it a good rating\u003C\u002Fa>, it will motivate me to keep sharing and improving this plugin (and others).\u003C\u002Fp>\n\u003Ch4>Requirements\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>WordPress 4.8 or higher.\u003C\u002Fli>\n\u003C\u002Ful>\n","Redirect attachment pages or return a 404 error for them based on the parent post status.",20000,181455,98,47,"2026-01-16T11:00:00.000Z","6.9.4","4.8","5.6",[20,21,135,136,24],"attachment","images","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fattachment-pages-redirect.1.1.2.zip",{"slug":139,"name":140,"version":141,"author":142,"author_profile":143,"description":144,"short_description":145,"active_installs":146,"downloaded":147,"rating":92,"num_ratings":148,"last_updated":149,"tested_up_to":131,"requires_at_least":150,"requires_php":151,"tags":152,"homepage":154,"download_link":155,"security_score":156,"vuln_count":93,"unpatched_count":29,"last_vuln_date":157,"fetched_at":31},"404-solution","404 Solution","3.2.2","Aaron","https:\u002F\u002Fprofiles.wordpress.org\u002Faaron13100\u002F","\u003Cp>Stop losing visitors to broken links. \u003Cstrong>404 Solution doesn’t just redirect errors to your homepage\u003C\u002Fstrong> – it uses advanced spell-checking and intelligent matching algorithms to \u003Cstrong>find the actual page your visitor was trying to reach\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>When a visitor hits a broken link like \u003Ccode>\u002Fprodcut\u002Fawesome-item\u003C\u002Fcode> (typo), most plugins redirect them to your homepage where they get lost and leave. 404 Solution is different – it \u003Cstrong>automatically finds \u003Ccode>\u002Fproduct\u002Fawesome-item\u003C\u002Fcode>\u003C\u002Fstrong> and redirects them to the right place.\u003C\u002Fp>\n\u003Ch4>Why 404 Solution is Different\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Intelligent URL Matching\u003C\u002Fstrong> – Uses sophisticated algorithms (N-gram similarity, Levenshtein distance, multi-word matching) to find the closest existing page, not just blindly redirect to homepage.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Spell-Checking Technology\u003C\u002Fstrong> – Automatically handles typos and URL variations so visitors find what they want even when they misspell URLs.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Zero Configuration\u003C\u002Fstrong> – Works perfectly out of the box with smart defaults. Advanced users have full control over every aspect.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>WooCommerce Optimized\u003C\u002Fstrong> – Specifically designed to work with products, categories, variations, and custom post types.\u003C\u002Fp>\n\u003Ch4>Core Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Automatic intelligent redirects\u003C\u002Fstrong> based on the best possible match for the URL\u003C\u002Fli>\n\u003Cli>\u003Cstrong>404 error logging\u003C\u002Fstrong> with detailed visitor data and referrer information\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Manual redirect creation\u003C\u002Fstrong> for specific URLs to any existing page\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Page suggestions shortcode\u003C\u002Fstrong> to display matches on custom 404 pages\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Automatic cleanup\u003C\u002Fstrong> removes redirects when URLs match new pages or are no longer used\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Regular expression support\u003C\u002Fstrong> for advanced redirect patterns\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Debug logging\u003C\u002Fstrong> to troubleshoot redirect behavior\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Performance optimized\u003C\u002Fstrong> for sites with 10,000+ pages\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Multilingual-friendly redirects\u003C\u002Fstrong> (TranslatePress, WPML, Polylang) to keep redirects in the request language\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>How It Works\u003C\u002Fh4>\n\u003Col>\n\u003Cli>Visitor hits a broken link (404 error)\u003C\u002Fli>\n\u003Cli>404 Solution analyzes the URL and compares it to all your existing pages\u003C\u002Fli>\n\u003Cli>Intelligent matching finds the closest match using spell-checking algorithms\u003C\u002Fli>\n\u003Cli>Visitor is automatically redirected to the correct page\u003C\u002Fli>\n\u003Cli>You can review all 404s and create custom redirects as needed\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Perfect For\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>eCommerce sites\u003C\u002Fstrong> (WooCommerce, Easy Digital Downloads) with changing product URLs\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Content sites\u003C\u002Fstrong> with evolving permalink structures\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Migrated sites\u003C\u002Fstrong> where old URLs need to map to new content\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Large sites\u003C\u002Fstrong> with thousands of pages where manual redirects are impractical\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Any WordPress site\u003C\u002Fstrong> that wants to provide better user experience\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>What Makes This Different From Other Redirect Plugins?\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>vs. Redirection\u003C\u002Fstrong> – Redirection requires manual redirect rules. 404 Solution automatically finds matches using intelligent algorithms.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>vs. 404 to 301\u003C\u002Fstrong> – 404 to 301 redirects everything to your homepage. 404 Solution finds the actual page visitors want.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>vs. Simple 301 Redirects\u003C\u002Fstrong> – Simple 301 only does manual redirects. 404 Solution creates intelligent automatic redirects based on URL similarity.\u003C\u002Fp>\n\u003Ch4>Technical Details\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Supports 301 (permanent) and 302 (temporary) redirects\u003C\u002Fli>\n\u003Cli>N-gram similarity scoring for fast matching\u003C\u002Fli>\n\u003Cli>Spell-checking with Levenshtein distance calculation\u003C\u002Fli>\n\u003Cli>Custom post type support (products, events, portfolios, etc.)\u003C\u002Fli>\n\u003Cli>Taxonomy-aware (categories, tags, custom taxonomies)\u003C\u002Fli>\n\u003Cli>Query parameter preservation\u003C\u002Fli>\n\u003Cli>Referrer tracking and logging\u003C\u002Fli>\n\u003Cli>IP address logging (GDPR-compliant hashing available)\u003C\u002Fli>\n\u003Cli>Automatic performance optimization for large sites\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Note:\u003C\u002Fstrong> For high-traffic sites with thousands of simultaneous users, disable “Create automatic redirects” and avoid using the shortcode to ensure optimal performance.\u003C\u002Fp>\n","The smartest 404 plugin for WordPress - finds what your visitors were actually looking for.",10000,981462,41,"2026-03-14T21:52:00.000Z","5.0","7.4",[20,21,153,24],"404","https:\u002F\u002Fwww.ajexperience.com\u002F404-solution\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002F404-solution.3.2.2.zip",86,"2025-12-12 15:01:14",{"slug":159,"name":160,"version":161,"author":162,"author_profile":163,"description":164,"short_description":165,"active_installs":166,"downloaded":167,"rating":168,"num_ratings":148,"last_updated":169,"tested_up_to":170,"requires_at_least":171,"requires_php":18,"tags":172,"homepage":174,"download_link":175,"security_score":102,"vuln_count":29,"unpatched_count":29,"last_vuln_date":38,"fetched_at":31},"404-redirected","Redirectioner","1.4.10","Yoast","https:\u002F\u002Fprofiles.wordpress.org\u002Fyoast\u002F","\u003Cp>Redirectioner allows WordPress admins to have control over their dead links and redirects from inside the admin panel. \u003Ca href=\"https:\u002F\u002Fredirectioner.com\" rel=\"nofollow ugc\">Redirectioner\u003C\u002Fa> records all URLs that users have visited and allows the admin to easily create 301 and 302 redirects to valid pages on their site. Redirects can also be created based on the best possible match for the URL the visitor was most likely trying to reach.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>\u003Cstrong>Support & Bug Reports\u003C\u002Fstrong>\u003Cbr \u002F>\n  If you’re in need of support or would like to file a bug report, please head over to our Github repository and \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fthememix\u002Fredirectioner\u002Fissues\" rel=\"nofollow ugc\">create a new issue.\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch4>Features:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Get list of 404 URLs as they happen inside the admin panel\u003C\u002Fli>\n\u003Cli>Easily redirect 404 URLs to existing pages or choose to ignore the 404 error\u003C\u002Fli>\n\u003Cli>Provides the ability to automatically create redirects based on the URL the visitor was most likely trying to visit\u003C\u002Fli>\n\u003Cli>Provide visitors with a list of suggested pages on the 404 page when a automatic redirect can not be made\u003C\u002Fli>\n\u003Cli>Ability to suggest tag and category pages\u003C\u002Fli>\n\u003Cli>Ability to create automatic redirect for misspelled tag and category pages\u003C\u002Fli>\n\u003Cli>Ability to view logs of hits to 404 pages and redirects including referrer data\u003C\u002Fli>\n\u003Cli>Ability to remove automatically remove redirects when the URL matches a new page or post permalink\u003C\u002Fli>\n\u003Cli>Ability to automatically remove manual and automatic redirects once they are no longer being used\u003C\u002Fli>\n\u003Cli>All features work with both pages and posts\u003C\u002Fli>\n\u003Cli>Create automatic redirects for any URL resolving to a single page or post that isn’t the current permalink\u003C\u002Fli>\n\u003Cli>Basic stats of plugin usage\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Convert your 404 traffic by providing your site visitors with a better browsing experience and eliminate 404 URLs on your site.\u003C\u002Fp>\n","Creates automatic redirects for 404 traffic and page suggestions when matches are not found providing better service to your web visitors.",2000,188963,78,"2018-01-12T09:49:00.000Z","4.7.32","3.1",[20,21,153,173,24],"page-not-found","https:\u002F\u002Fredirectioner.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002F404-redirected.1.4.10.zip",{"attackSurface":177,"codeSignals":376,"taintFlows":732,"riskAssessment":769,"analyzedAt":781},{"hooks":178,"ajaxHandlers":346,"restRoutes":372,"shortcodes":373,"cronEvents":374,"entryPointCount":375,"unprotectedCount":29},[179,185,188,191,195,200,204,210,214,218,222,225,229,233,237,241,243,246,250,254,258,262,267,270,273,277,281,285,289,293,296,299,301,303,305,307,310,314,318,322,326,330,332,334,338,342],{"type":180,"name":181,"callback":182,"file":183,"line":184},"action","admin_init","save_quick_redirects_fields","page_post_redirect_plugin.php",103,{"type":180,"name":181,"callback":186,"priority":77,"file":183,"line":187},"ppr_init_check_version",104,{"type":180,"name":181,"callback":189,"file":183,"line":190},"qppr_meta_plugin_has_addon",105,{"type":180,"name":192,"callback":193,"file":183,"line":194},"init","ppr_parse_request_new",106,{"type":180,"name":196,"callback":197,"priority":198,"file":183,"line":199},"save_post","ppr_save_metadata",11,107,{"type":180,"name":201,"callback":202,"file":183,"line":203},"admin_menu","ppr_add_menu_and_metaboxes",108,{"type":205,"name":206,"callback":207,"priority":208,"file":183,"line":209},"filter","plugin_row_meta","ppr_filter_plugin_links",10,110,{"type":180,"name":211,"callback":212,"file":183,"line":213},"plugins_loaded","qppr_load_textdomain",111,{"type":205,"name":215,"callback":216,"file":183,"line":217},"query_vars","ppr_queryhook",112,{"type":180,"name":219,"callback":220,"file":183,"line":221},"admin_enqueue_scripts","qppr_admin_scripts",113,{"type":180,"name":219,"callback":223,"priority":90,"file":183,"line":224},"qppr_pointer_load",114,{"type":180,"name":226,"callback":227,"file":183,"line":228},"wp_enqueue_scripts","qppr_frontend_scripts",115,{"type":205,"name":230,"callback":231,"file":183,"line":232},"qppr_admin_pointers-toplevel_page_redirect-updates","qppr_register_pointer_existing",122,{"type":205,"name":234,"callback":235,"file":183,"line":236},"qppr_admin_pointers-quick-redirects_page_redirect-options","qppr_register_pointer_use_jquery",123,{"type":205,"name":238,"callback":239,"file":183,"line":240},"qppr_admin_pointers-quick-redirects_page_meta_addon","qppr_register_pointer_meta",124,{"type":180,"name":192,"callback":24,"priority":77,"file":183,"line":242},128,{"type":180,"name":192,"callback":244,"priority":77,"file":183,"line":245},"redirect_post_type",129,{"type":180,"name":247,"callback":248,"priority":77,"file":183,"line":249},"ppr_meta_head_hook","override_ppr_metahead",130,{"type":180,"name":251,"callback":252,"priority":77,"file":183,"line":253},"template_redirect","ppr_do_redirect",131,{"type":205,"name":255,"callback":256,"priority":77,"file":183,"line":257},"wp_get_nav_menu_items","ppr_new_nav_menu_fix",132,{"type":205,"name":259,"callback":260,"file":183,"line":261},"wp_list_pages","ppr_fix_targetsandrels",133,{"type":205,"name":263,"callback":264,"priority":265,"file":183,"line":266},"page_link","ppr_filter_page_links",20,134,{"type":205,"name":268,"callback":264,"priority":265,"file":183,"line":269},"post_link",135,{"type":205,"name":271,"callback":264,"priority":265,"file":183,"line":272},"post_type_link",136,{"type":205,"name":274,"callback":275,"priority":265,"file":183,"line":276},"get_permalink","ppr_filter_links",137,{"type":205,"name":278,"callback":279,"file":183,"line":280},"redirect_canonical","wordpress_no_guess_canonical",138,{"type":205,"name":282,"callback":283,"file":183,"line":284},"pre_get_posts","add_custom_columns",142,{"type":205,"name":286,"callback":287,"file":183,"line":288},"manage_post_posts_columns","set_custom_edit_qppr_columns",520,{"type":180,"name":290,"callback":291,"priority":208,"file":183,"line":292},"manage_post_posts_custom_column","custom_qppr_column",521,{"type":205,"name":294,"callback":287,"file":183,"line":295},"manage_page_posts_columns",525,{"type":180,"name":297,"callback":291,"priority":208,"file":183,"line":298},"manage_page_posts_custom_column",526,{"type":205,"name":286,"callback":287,"file":183,"line":300},537,{"type":180,"name":290,"callback":291,"priority":208,"file":183,"line":302},538,{"type":205,"name":294,"callback":287,"file":183,"line":304},541,{"type":180,"name":297,"callback":291,"priority":208,"file":183,"line":306},542,{"type":180,"name":181,"callback":308,"file":183,"line":309},"register_pprsettings",582,{"type":205,"name":311,"callback":312,"priority":208,"file":183,"line":313},"sanitize_post_meta__pprredirect_newwindow","qppr_sanitize_pprredirect_newwindow_meta",1882,{"type":205,"name":315,"callback":316,"priority":208,"file":183,"line":317},"sanitize_post_meta__pprredirect_active","qppr_sanitize_pprredirect_active_meta",1883,{"type":180,"name":319,"callback":320,"file":183,"line":321},"admin_notices","qppr_meta_addon_admin_notice",2392,{"type":205,"name":323,"callback":324,"priority":208,"file":183,"line":325},"sanitize_option_quickppr_redirects","qppr_sanitize_option_redirects",2649,{"type":205,"name":327,"callback":328,"priority":208,"file":183,"line":329},"sanitize_option_quickppr_redirects_meta","qppr_sanitize_option_redirects_meta",2663,{"type":205,"name":315,"callback":316,"priority":208,"file":183,"line":331},2668,{"type":205,"name":311,"callback":312,"priority":208,"file":183,"line":333},2673,{"type":205,"name":335,"callback":336,"priority":208,"file":183,"line":337},"sanitize_post_meta__pprredirect_relnofollow","qppr_sanitize_pprredirect_relnofollow_meta",2678,{"type":205,"name":339,"callback":340,"priority":208,"file":183,"line":341},"sanitize_post_meta__pprredirect_rewritelink","qppr_sanitize_pprredirect_rewritelink_meta",2683,{"type":205,"name":343,"callback":344,"priority":208,"file":183,"line":345},"sanitize_post_meta__pprredirect_type","qppr_sanitize_pprredirect_type_meta",2692,[347,353,357,361,365,369],{"action":348,"nopriv":349,"callback":350,"hasNonce":351,"hasCapCheck":351,"file":183,"line":352},"qppr_delete_all_settings",false,"qppr_delete_all_settings_ajax",true,116,{"action":354,"nopriv":349,"callback":355,"hasNonce":351,"hasCapCheck":351,"file":183,"line":356},"qppr_delete_all_iredirects","qppr_delete_all_ireds_ajax",117,{"action":358,"nopriv":349,"callback":359,"hasNonce":351,"hasCapCheck":351,"file":183,"line":360},"qppr_delete_all_qredirects","qppr_delete_all_qreds_ajax",118,{"action":362,"nopriv":349,"callback":363,"hasNonce":351,"hasCapCheck":351,"file":183,"line":364},"qppr_delete_quick_redirect","qppr_delete_quick_redirect_ajax",119,{"action":366,"nopriv":349,"callback":367,"hasNonce":351,"hasCapCheck":351,"file":183,"line":368},"qppr_save_quick_redirect","qppr_save_quick_redirect_ajax",120,{"action":370,"nopriv":349,"callback":370,"hasNonce":351,"hasCapCheck":349,"file":183,"line":371},"qppr_pprhidemessage_ajax",121,[],[],[],6,{"dangerousFunctions":377,"sqlUsage":382,"outputEscaping":388,"fileOperations":729,"externalRequests":29,"nonceChecks":198,"capabilityChecks":730,"bundledLibraries":731},[378],{"fn":379,"file":183,"line":380,"context":381},"unserialize",1638,"$config_file = unserialize(base64_decode(substr($config_file, strlen('QUICKPAGEPOSTREDIRECT'))));",{"prepared":383,"raw":77,"locations":384},4,[385],{"file":183,"line":386,"context":387},1767,"$wpdb->query() with variable interpolation",{"escaped":389,"rawEcho":390,"locations":391},82,179,[392,395,397,399,401,403,405,407,409,411,413,415,417,419,421,423,425,427,429,431,433,434,435,437,438,440,441,443,444,446,447,449,450,452,453,455,456,458,459,461,462,464,466,468,470,472,474,476,477,479,481,482,484,486,488,490,492,494,496,498,500,501,503,505,507,509,511,512,514,516,518,520,522,524,526,527,529,531,533,535,537,538,540,541,543,545,547,549,551,553,555,557,559,561,563,565,567,569,571,573,575,576,578,580,582,583,585,587,589,591,593,595,597,599,601,603,605,607,609,611,613,615,617,619,621,623,625,627,629,631,633,635,637,639,641,643,645,647,649,651,653,655,657,659,661,663,665,667,669,671,673,675,677,679,681,683,685,687,689,691,693,695,697,699,701,703,705,706,707,709,711,713,715,717,719,721,723,725,727],{"file":183,"line":393,"context":394},753,"raw output",{"file":183,"line":396,"context":394},785,{"file":183,"line":398,"context":394},791,{"file":183,"line":400,"context":394},792,{"file":183,"line":402,"context":394},800,{"file":183,"line":404,"context":394},803,{"file":183,"line":406,"context":394},804,{"file":183,"line":408,"context":394},805,{"file":183,"line":410,"context":394},806,{"file":183,"line":412,"context":394},833,{"file":183,"line":414,"context":394},834,{"file":183,"line":416,"context":394},835,{"file":183,"line":418,"context":394},836,{"file":183,"line":420,"context":394},837,{"file":183,"line":422,"context":394},838,{"file":183,"line":424,"context":394},839,{"file":183,"line":426,"context":394},840,{"file":183,"line":428,"context":394},841,{"file":183,"line":430,"context":394},914,{"file":183,"line":432,"context":394},916,{"file":183,"line":432,"context":394},{"file":183,"line":432,"context":394},{"file":183,"line":436,"context":394},918,{"file":183,"line":436,"context":394},{"file":183,"line":439,"context":394},920,{"file":183,"line":439,"context":394},{"file":183,"line":442,"context":394},921,{"file":183,"line":442,"context":394},{"file":183,"line":445,"context":394},922,{"file":183,"line":445,"context":394},{"file":183,"line":448,"context":394},923,{"file":183,"line":448,"context":394},{"file":183,"line":451,"context":394},924,{"file":183,"line":451,"context":394},{"file":183,"line":454,"context":394},925,{"file":183,"line":454,"context":394},{"file":183,"line":457,"context":394},926,{"file":183,"line":457,"context":394},{"file":183,"line":460,"context":394},927,{"file":183,"line":460,"context":394},{"file":183,"line":463,"context":394},945,{"file":183,"line":465,"context":394},947,{"file":183,"line":467,"context":394},961,{"file":183,"line":469,"context":394},967,{"file":183,"line":471,"context":394},968,{"file":183,"line":473,"context":394},969,{"file":183,"line":475,"context":394},970,{"file":183,"line":475,"context":394},{"file":183,"line":478,"context":394},971,{"file":183,"line":480,"context":394},972,{"file":183,"line":480,"context":394},{"file":183,"line":483,"context":394},979,{"file":183,"line":485,"context":394},980,{"file":183,"line":487,"context":394},981,{"file":183,"line":489,"context":394},983,{"file":183,"line":491,"context":394},984,{"file":183,"line":493,"context":394},985,{"file":183,"line":495,"context":394},987,{"file":183,"line":497,"context":394},989,{"file":183,"line":499,"context":394},999,{"file":183,"line":90,"context":394},{"file":183,"line":502,"context":394},1002,{"file":183,"line":504,"context":394},1003,{"file":183,"line":506,"context":394},1005,{"file":183,"line":508,"context":394},1006,{"file":183,"line":510,"context":394},1008,{"file":183,"line":510,"context":394},{"file":183,"line":513,"context":394},1010,{"file":183,"line":515,"context":394},1015,{"file":183,"line":517,"context":394},1042,{"file":183,"line":519,"context":394},1060,{"file":183,"line":521,"context":394},1071,{"file":183,"line":523,"context":394},1074,{"file":183,"line":525,"context":394},1078,{"file":183,"line":525,"context":394},{"file":183,"line":528,"context":394},1096,{"file":183,"line":530,"context":394},1100,{"file":183,"line":532,"context":394},1101,{"file":183,"line":534,"context":394},1105,{"file":183,"line":536,"context":394},1106,{"file":183,"line":536,"context":394},{"file":183,"line":539,"context":394},1112,{"file":183,"line":539,"context":394},{"file":183,"line":542,"context":394},1115,{"file":183,"line":544,"context":394},1116,{"file":183,"line":546,"context":394},1119,{"file":183,"line":548,"context":394},1120,{"file":183,"line":550,"context":394},1123,{"file":183,"line":552,"context":394},1124,{"file":183,"line":554,"context":394},1127,{"file":183,"line":556,"context":394},1129,{"file":183,"line":558,"context":394},1130,{"file":183,"line":560,"context":394},1131,{"file":183,"line":562,"context":394},1132,{"file":183,"line":564,"context":394},1133,{"file":183,"line":566,"context":394},1135,{"file":183,"line":568,"context":394},1139,{"file":183,"line":570,"context":394},1140,{"file":183,"line":572,"context":394},1143,{"file":183,"line":574,"context":394},1144,{"file":183,"line":574,"context":394},{"file":183,"line":577,"context":394},1147,{"file":183,"line":579,"context":394},1148,{"file":183,"line":581,"context":394},1154,{"file":183,"line":581,"context":394},{"file":183,"line":584,"context":394},1157,{"file":183,"line":586,"context":394},1159,{"file":183,"line":588,"context":394},1160,{"file":183,"line":590,"context":394},1161,{"file":183,"line":592,"context":394},1165,{"file":183,"line":594,"context":394},1167,{"file":183,"line":596,"context":394},1168,{"file":183,"line":598,"context":394},1172,{"file":183,"line":600,"context":394},1292,{"file":183,"line":602,"context":394},1303,{"file":183,"line":604,"context":394},1304,{"file":183,"line":606,"context":394},1308,{"file":183,"line":608,"context":394},1309,{"file":183,"line":610,"context":394},1312,{"file":183,"line":612,"context":394},1313,{"file":183,"line":614,"context":394},1314,{"file":183,"line":616,"context":394},1320,{"file":183,"line":618,"context":394},1323,{"file":183,"line":620,"context":394},1325,{"file":183,"line":622,"context":394},1326,{"file":183,"line":624,"context":394},1327,{"file":183,"line":626,"context":394},1335,{"file":183,"line":628,"context":394},1336,{"file":183,"line":630,"context":394},1344,{"file":183,"line":632,"context":394},1345,{"file":183,"line":634,"context":394},1353,{"file":183,"line":636,"context":394},1354,{"file":183,"line":638,"context":394},1359,{"file":183,"line":640,"context":394},1363,{"file":183,"line":642,"context":394},1369,{"file":183,"line":644,"context":394},1372,{"file":183,"line":646,"context":394},1374,{"file":183,"line":648,"context":394},1375,{"file":183,"line":650,"context":394},1376,{"file":183,"line":652,"context":394},1380,{"file":183,"line":654,"context":394},1385,{"file":183,"line":656,"context":394},1386,{"file":183,"line":658,"context":394},1387,{"file":183,"line":660,"context":394},1388,{"file":183,"line":662,"context":394},1798,{"file":183,"line":664,"context":394},1799,{"file":183,"line":666,"context":394},1800,{"file":183,"line":668,"context":394},1801,{"file":183,"line":670,"context":394},1803,{"file":183,"line":672,"context":394},1804,{"file":183,"line":674,"context":394},1805,{"file":183,"line":676,"context":394},1825,{"file":183,"line":678,"context":394},1837,{"file":183,"line":680,"context":394},1838,{"file":183,"line":682,"context":394},1840,{"file":183,"line":684,"context":394},2280,{"file":183,"line":686,"context":394},2283,{"file":183,"line":688,"context":394},2284,{"file":183,"line":690,"context":394},2348,{"file":183,"line":692,"context":394},2349,{"file":183,"line":694,"context":394},2350,{"file":183,"line":696,"context":394},2351,{"file":183,"line":698,"context":394},2356,{"file":183,"line":700,"context":394},2357,{"file":183,"line":702,"context":394},2360,{"file":183,"line":704,"context":394},2361,{"file":183,"line":704,"context":394},{"file":183,"line":704,"context":394},{"file":183,"line":708,"context":394},2364,{"file":183,"line":710,"context":394},2365,{"file":183,"line":712,"context":394},2368,{"file":183,"line":714,"context":394},2369,{"file":183,"line":716,"context":394},2372,{"file":183,"line":718,"context":394},2373,{"file":183,"line":720,"context":394},2374,{"file":183,"line":722,"context":394},2375,{"file":183,"line":724,"context":394},2377,{"file":183,"line":726,"context":394},2382,{"file":183,"line":728,"context":394},2398,2,13,[],[733,758],{"entryPoint":734,"graph":735,"unsanitizedCount":29,"severity":757},"ppr_parse_request_new (page_post_redirect_plugin.php:1545)",{"nodes":736,"edges":754},[737,742,746,749],{"id":738,"type":739,"label":740,"file":183,"line":741},"n0","source","$_FILES",1592,{"id":743,"type":744,"label":745,"file":183,"line":380,"wp_function":379},"n1","sink","unserialize() [Object Injection]",{"id":747,"type":739,"label":748,"file":183,"line":741},"n2","$_FILES (x2)",{"id":750,"type":744,"label":751,"file":183,"line":752,"wp_function":753},"n3","update_option() [Settings Manipulation]",1645,"update_option",[755,756],{"from":738,"to":743,"sanitized":351},{"from":747,"to":750,"sanitized":351},"low",{"entryPoint":759,"graph":760,"unsanitizedCount":29,"severity":757},"\u003Cpage_post_redirect_plugin> (page_post_redirect_plugin.php:0)",{"nodes":761,"edges":766},[762,763,764,765],{"id":738,"type":739,"label":740,"file":183,"line":741},{"id":743,"type":744,"label":745,"file":183,"line":380,"wp_function":379},{"id":747,"type":739,"label":748,"file":183,"line":741},{"id":750,"type":744,"label":751,"file":183,"line":752,"wp_function":753},[767,768],{"from":738,"to":743,"sanitized":351},{"from":747,"to":750,"sanitized":351},{"summary":770,"deductions":771},"The quick-pagepost-redirect-plugin v5.2.4 exhibits a mixed security posture. On the positive side, the plugin has a relatively small attack surface with all identified AJAX handlers protected by authentication checks. It also demonstrates good practices in handling SQL queries and includes a healthy number of nonce and capability checks. However, the presence of the 'unserialize' function is a significant concern, as it can lead to deserialization vulnerabilities if not handled with extreme care, especially when dealing with user-supplied data.\n\nThe vulnerability history reveals a pattern of previously disclosed issues, including high and medium severity vulnerabilities related to Improper Access Control and Cross-site Scripting. While there are currently no unpatched CVEs, the historical trend suggests a need for ongoing vigilance and prompt patching of any future disclosures. The limited taint analysis with no critical or high severity flows is a positive sign, but it doesn't fully mitigate the risks associated with potentially unsafe functions like 'unserialize'.\n\nIn conclusion, while the plugin has made strides in implementing security measures like authentication and capability checks, the presence of 'unserialize' and the historical vulnerability record necessitate careful review and ongoing monitoring. The lack of critical taint flows is encouraging, but the potential for deserialization vulnerabilities and past access control\u002FXSS issues remain key weaknesses that should be addressed to improve the overall security.",[772,775,777,779],{"reason":773,"points":774},"Presence of 'unserialize' function",15,{"reason":776,"points":774},"Historical high severity vulnerability (Improper Access Control)",{"reason":778,"points":208},"Historical medium severity vulnerability (XSS)",{"reason":780,"points":93},"Only 31% of outputs properly escaped","2026-03-16T17:13:07.060Z",{"wat":783,"direct":798},{"assetPaths":784,"generatorPatterns":789,"scriptPaths":790,"versionParams":793},[785,786,787,788],"\u002Fwp-content\u002Fplugins\u002Fquick-pagepost-redirect-plugin\u002Fjs\u002Fqppr-admin-scripts.js","\u002Fwp-content\u002Fplugins\u002Fquick-pagepost-redirect-plugin\u002Fjs\u002Fqppr-frontend-scripts.js","\u002Fwp-content\u002Fplugins\u002Fquick-pagepost-redirect-plugin\u002Fcss\u002Fqppr-admin-styles.css","\u002Fwp-content\u002Fplugins\u002Fquick-pagepost-redirect-plugin\u002Fcss\u002Fqppr-pointer.css",[],[785,786,791,792],"\u002Fwp-content\u002Fplugins\u002Fquick-pagepost-redirect-plugin\u002Fjs\u002Fqppr-admin-scripts.js?ver=","\u002Fwp-content\u002Fplugins\u002Fquick-pagepost-redirect-plugin\u002Fjs\u002Fqppr-frontend-scripts.js?ver=",[794,795,796,797],"quick-pagepost-redirect-plugin\u002Fjs\u002Fqppr-admin-scripts.js?ver=","quick-pagepost-redirect-plugin\u002Fjs\u002Fqppr-frontend-scripts.js?ver=","quick-pagepost-redirect-plugin\u002Fcss\u002Fqppr-admin-styles.css?ver=","quick-pagepost-redirect-plugin\u002Fcss\u002Fqppr-pointer.css?ver=",{"cssClasses":799,"htmlComments":804,"htmlAttributes":808,"restEndpoints":811,"jsGlobals":812,"shortcodeOutput":814},[800,801,802,803],"qppr_redirects_table","qppr_redirect_save","qppr_redirect_delete","qppr_redirect_edit",[805,806,807],"\u003C!-- quick-pagepost-redirect-plugin -->","\u003C!-- quick-pagepost-redirect-plugin - Meta Redirects -->","\u003C!-- quick-pagepost-redirect-plugin - Meta Redirects END -->",[809,810],"data-qppr-id","data-qppr-action",[],[813],"qppr_ajax_obj",[]]