{"id":362444,"date":"2026-09-02T01:29:48","date_gmt":"2026-09-02T01:29:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/redirect-manager-dl\/"},"modified":"2026-09-02T01:29:35","modified_gmt":"2026-09-02T01:29:35","slug":"devlemon-redirect-manager","status":"publish","type":"plugin","link":"https:\/\/xho.wordpress.org\/plugins\/devlemon-redirect-manager\/","author":23551509,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.5","stable_tag":"1.0.5","tested":"7.1","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"DevLemon Redirect Manager","header_author":"DevLemon","header_description":"Simple, lightweight and secure redirect manager. Create and manage 301, 302, 307 and 410 redirects without editing server configuration files.","assets_banners_color":"04132c","last_updated":"2026-09-02 01:29:35","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/devlemon.com.br\/plugins\/redirect-manager-dl\/","header_author_uri":"https:\/\/devlemon.com.br","rating":0,"author_block_rating":0,"active_installs":0,"downloads":68,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.5":{"tag":"1.0.5","author":"devlemon","date":"2026-09-02 01:29:35","revision":3677002}},"upgrade_notice":{"1.0.5":"<p>Fixes duplicated admin screens caused by duplicate plugin bootstrap\/initialization.<\/p>","1.0.4":"<p>Updates the plugin identity requested during the WordPress.org directory review.<\/p>","1.0.3":"<p>Removes development-only legacy migration code to improve WordPress.org Plugin Check compatibility.<\/p>","1.0.2":"<p>WordPress.org readiness update with WordPress 7.1 compatibility, automatic translations, and uniquely prefixed identifiers.<\/p>","1.0.1":"<p>Minor code quality and standards fixes. No functional changes.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3677003,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3677003,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3677003,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3677003,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3677003,"resolution":"1","location":"assets","locale":"","width":1200,"height":750},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3677003,"resolution":"2","location":"assets","locale":"","width":1200,"height":750}},"screenshots":{"1":"The redirect list with stats bar, search, and filter controls.","2":"Adding a new redirect \u2014 source, target, type, and status fields.","3":"The empty state when no redirects have been created yet.","4":"The CSV import page with format instructions.","5":"The edit view for an existing redirect.","6":"The export CSV download option in the toolbar."}},"plugin_section":[],"plugin_tags":[950,14279,727,54707,32033],"plugin_category":[],"plugin_contributors":[277157],"plugin_business_model":[],"class_list":["post-362444","plugin","type-plugin","status-publish","hentry","plugin_tags-301-redirect","plugin_tags-broken-links","plugin_tags-redirect","plugin_tags-redirect-manager","plugin_tags-url-redirect","plugin_contributors-devlemon","plugin_committers-devlemon"],"banners":{"banner":"https:\/\/ps.w.org\/devlemon-redirect-manager\/assets\/banner-772x250.png?rev=3677003","banner_2x":"https:\/\/ps.w.org\/devlemon-redirect-manager\/assets\/banner-1544x500.png?rev=3677003","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/devlemon-redirect-manager\/assets\/icon-128x128.png?rev=3677003","icon_2x":"https:\/\/ps.w.org\/devlemon-redirect-manager\/assets\/icon-256x256.png?rev=3677003","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/devlemon-redirect-manager\/assets\/screenshot-1.png?rev=3677003","caption":"The redirect list with stats bar, search, and filter controls."},{"src":"https:\/\/ps.w.org\/devlemon-redirect-manager\/assets\/screenshot-2.png?rev=3677003","caption":"Adding a new redirect \u2014 source, target, type, and status fields."}],"raw_content":"<!--section=description-->\n<p>DevLemon Redirect Manager lets you manage URL redirects directly from the WordPress admin \u2014 no server file editing required.<\/p>\n\n<p><strong>Who needs this?<\/strong><\/p>\n\n<ul>\n<li>Your page slugs changed after a redesign.<\/li>\n<li>You migrated from another platform and old URLs are still getting traffic.<\/li>\n<li>A post was permanently removed and you want to return a proper 410 Gone response.<\/li>\n<li>You have campaigns whose URLs changed and you need to preserve external links.<\/li>\n<\/ul>\n\n<p><strong>Supported redirect types<\/strong><\/p>\n\n<ul>\n<li>301 \u2014 Moved Permanently (most common; tells search engines to transfer link equity)<\/li>\n<li>302 \u2014 Found \/ Temporary Redirect<\/li>\n<li>307 \u2014 Temporary Redirect (method-preserving)<\/li>\n<li>410 \u2014 Gone (tells search engines the content is permanently removed)<\/li>\n<\/ul>\n\n<p><strong>What you can do<\/strong><\/p>\n\n<ul>\n<li>Create, edit, enable, disable, and delete redirects.<\/li>\n<li>Import redirects in bulk via CSV.<\/li>\n<li>Export your current redirects to CSV.<\/li>\n<li>Search by source or target, and filter by redirect type or active status.<\/li>\n<li>See how many times each redirect has been triggered (hit counter).<\/li>\n<li>Loop detection prevents you from creating circular redirects.<\/li>\n<\/ul>\n\n<p><strong>Design philosophy<\/strong><\/p>\n\n<ul>\n<li>One function, done well. No SEO suites, analytics, or marketing tools bundled in.<\/li>\n<li>Zero front-end overhead \u2014 no CSS, JavaScript, or external requests added to your site.<\/li>\n<li>Privacy-first: no visitor IPs, user agents, or personal data stored anywhere.<\/li>\n<li>Redirects are processed via WordPress APIs \u2014 no <code>.htaccess<\/code> modifications.<\/li>\n<li>Fully uninstallable: removing the plugin cleans up all its database tables and options.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>devlemon-redirect-manager<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install it via the WordPress plugin screen.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to <strong>Tools \u2192 DevLemon Redirect Manager<\/strong> to start adding redirects.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20support%20external%20redirects%3F\"><h3>Does it support external redirects?<\/h3><\/dt>\n<dd><p>Yes. You can redirect to any valid <code>http:\/\/<\/code> or <code>https:\/\/<\/code> URL. Dangerous URL schemes such as <code>javascript:<\/code>, <code>data:<\/code>, and <code>file:<\/code> are always rejected.<\/p><\/dd>\n<dt id=\"does%20it%20collect%20visitor%20data%3F\"><h3>Does it collect visitor data?<\/h3><\/dt>\n<dd><p>No. The only data stored is an aggregate hit counter per redirect rule. No IP addresses, user agents, cookies, or personal information are ever recorded.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20deactivate%20the%20plugin%3F\"><h3>What happens when I deactivate the plugin?<\/h3><\/dt>\n<dd><p>Your redirect rules are preserved in the database. Redirects will simply stop working while the plugin is deactivated.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20delete%20the%20plugin%3F\"><h3>What happens when I delete the plugin?<\/h3><\/dt>\n<dd><p>All redirect rules and plugin options are permanently removed from the database.<\/p><\/dd>\n<dt id=\"what%20is%20the%20difference%20between%20301%2C%20302%2C%20307%2C%20and%20410%3F\"><h3>What is the difference between 301, 302, 307, and 410?<\/h3><\/dt>\n<dd><p>301 is a permanent redirect \u2014 search engines will update their index and transfer authority to the new URL. 302 and 307 are temporary redirects that preserve the original URL in search engine indexes. 410 tells search engines and browsers that the content is permanently gone and should be removed from indexes; no destination URL is needed.<\/p><\/dd>\n<dt id=\"does%20it%20modify%20.htaccess%20or%20any%20server%20configuration%20files%3F\"><h3>Does it modify .htaccess or any server configuration files?<\/h3><\/dt>\n<dd><p>No. DevLemon Redirect Manager processes redirects entirely through WordPress PHP execution. Server configuration files are never touched.<\/p><\/dd>\n<dt id=\"does%20it%20support%20wildcards%20or%20regular%20expressions%3F\"><h3>Does it support wildcards or regular expressions?<\/h3><\/dt>\n<dd><p>Not in this version. Matching is exact and based on the URL path. This keeps behaviour predictable and easy to audit.<\/p><\/dd>\n<dt id=\"what%20does%20%22query%20strings%20are%20ignored%20during%20matching%22%20mean%3F\"><h3>What does \"query strings are ignored during matching\" mean?<\/h3><\/dt>\n<dd><p>A redirect rule for <code>\/page\/<\/code> will also match <code>\/page\/?utm_source=newsletter<\/code>. The query string is not part of the match criteria.<\/p><\/dd>\n<dt id=\"how%20does%20loop%20detection%20work%3F\"><h3>How does loop detection work?<\/h3><\/dt>\n<dd><p>The plugin checks for direct loops (A \u2192 A) and one-hop indirect loops (A \u2192 B where B \u2192 A already exists) at the time you save a redirect.<\/p><\/dd>\n<dt id=\"can%20i%20import%20existing%20redirects%3F\"><h3>Can I import existing redirects?<\/h3><\/dt>\n<dd><p>Yes. Go to the Import page and upload a CSV file with the format: <code>source,target,status_code<\/code>. See the import page for a full example.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Fixed: Prevents the admin interface and action hooks from being registered twice if duplicate plugin copies are loaded in WordPress.<\/li>\n<li>Improved: Added a defensive one-time initialization guard for the admin controller.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>WordPress.org review: Changed the public plugin name to DevLemon Redirect Manager and aligned the slug\/text domain with devlemon-redirect-manager for a more distinctive identity.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Code quality: Removed the development-only legacy database migration that triggered Plugin Check database warnings.<\/li>\n<li>WordPress.org readiness: Keeps the unique devlrdm_ \/ DEVLRDM_ prefix without legacy SQL compatibility code.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Compatibility: Updated Tested up to to WordPress 7.1.<\/li>\n<li>WordPress.org: Removed manual translation loading and bundled translation files. WordPress.org loads translations automatically.<\/li>\n<li>Code quality: Replaced the previous short internal prefix with the unique DevLemon prefix devlrdm_ \/ DEVLRDM_ across global identifiers.<\/li>\n<li>Upgrade safety: Added a one-time migration for redirect rules created with development builds that used the previous storage prefix.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fixed: Plugin URI now points to the plugin-specific page.<\/li>\n<li>Improved: Translation strings are compatible with translate.wordpress.org.<\/li>\n<li>Fixed: Escaping applied to all dynamic output in the admin list view.<\/li>\n<li>Code: Removed unused variable from list view.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Simple, lightweight and secure redirect manager. Create and manage 301, 302, 307 and 410 redirects without editing server configuration files.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/362444","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=362444"}],"author":[{"embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/devlemon"}],"wp:attachment":[{"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=362444"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=362444"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=362444"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=362444"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=362444"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/xho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=362444"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}