{"id":338748,"date":"2026-07-15T13:38:41","date_gmt":"2026-07-15T13:38:41","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/media-route-replace\/"},"modified":"2026-07-15T14:57:39","modified_gmt":"2026-07-15T14:57:39","slug":"linko-media-path-mapper-and-swapper","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/linko-media-path-mapper-and-swapper\/","author":23521678,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.1","requires":"6.5","requires_php":"8.0","requires_plugins":null,"header_name":"Linko Media Path Mapper & Swapper","header_author":"Ajish S","header_description":"Create clean custom media paths, seamlessly replace files without breaking links, and manage powerful 301\/302\/404 redirect rules.","assets_banners_color":"afc4c1","last_updated":"2026-07-15 14:57:39","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":28,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"ajiajish","date":"2026-07-15 14:57:39"}},"upgrade_notice":{"1.0.0":"<p>Initial public release of Linko Media Path Mapper &amp; Swapper.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3608997,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3608997,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3608997,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3608997,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Custom media path manager.","2":"Media replacement interface.","3":"Redirect rules manager.","4":"Redirect analytics and hit counter.","5":"Plugin settings page."}},"plugin_section":[],"plugin_tags":[84,231428,271697,726,186],"plugin_category":[50,55],"plugin_contributors":[271698],"plugin_business_model":[],"class_list":["post-338748","plugin","type-plugin","status-publish","hentry","plugin_tags-media","plugin_tags-media-management","plugin_tags-media-replace","plugin_tags-redirects","plugin_tags-seo","plugin_category-media","plugin_category-seo-and-marketing","plugin_contributors-ajiajish","plugin_committers-ajiajish"],"banners":{"banner":"https:\/\/ps.w.org\/linko-media-path-mapper-and-swapper\/assets\/banner-772x250.png?rev=3608997","banner_2x":"https:\/\/ps.w.org\/linko-media-path-mapper-and-swapper\/assets\/banner-1544x500.png?rev=3608997","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/linko-media-path-mapper-and-swapper\/assets\/icon-128x128.png?rev=3608997","icon_2x":"https:\/\/ps.w.org\/linko-media-path-mapper-and-swapper\/assets\/icon-256x256.png?rev=3608997","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Are you tired of ugly, date-based WordPress upload URLs like <code>\/wp-content\/uploads\/2024\/05\/image.png<\/code>?<\/p>\n\n<p><strong>Linko Media Path Mapper &amp; Swapper<\/strong> is a powerful URL management suite that gives you complete control over how your media files are served. It is built around 3 core workflows designed for performance, SEO, and ease of use.<\/p>\n\n<h3>\ud83c\udfaf 1. Clean &amp; Custom Media Paths<\/h3>\n\n<p>Transform messy upload URLs into beautiful, human-readable paths.\n*   Change <code>\/wp-content\/uploads\/2024\/05\/report.pdf<\/code> \u2192 <code>\/downloads\/annual-report.pdf<\/code>\n*   Optionally hide or show file extensions (e.g., <code>\/images\/logo<\/code> instead of <code>\/images\/logo.png<\/code>).\n*   <strong>Smart WebP Mapping:<\/strong> Automatically maps and serves <code>.webp<\/code> versions for modern browsers without altering your database.\n*   <strong>Deep Integration:<\/strong> Works flawlessly with standard WordPress galleries, ACF (Advanced Custom Fields), and page builders via our dual-layer filtering system.<\/p>\n\n<h3>\ud83d\udd04 2. Smart Media Replacement<\/h3>\n\n<p>Need to update an image or PDF but don't want to change the URL or lose SEO rankings?\n*   Replace the actual file on the server directly from the admin panel.\n*   <strong>Keep or Update Dates:<\/strong> Choose to keep the original upload date (for SEO) or update it to the current date (to move it to a new month folder).\n*   <strong>Rename on the Fly:<\/strong> Optionally use the newly uploaded file's name while automatically updating all custom path mappings.\n*   Bypasses CDN and cache issues seamlessly with built-in cache-busting.<\/p>\n\n<h3>\ud83d\udd00 3. Advanced Redirection Rules (301, 302, 404)<\/h3>\n\n<p>A lightweight, high-performance redirect manager built right into the plugin.\n*   <strong>Multi-Domain Support:<\/strong> Easily redirect traffic from an old domain (e.g., <code>https:\/\/olddomain.com\/blog-post<\/code>) to your new site paths.\n*   <strong>Flexible Rules:<\/strong> Set up 301 (Permanent), 302 (Temporary), or 404 (Not Found) responses.\n*   <strong>Hit Tracking:<\/strong> See how many times a redirect rule has been triggered directly in the admin UI.\n*   <strong>Zero Conflict:<\/strong> Uses smart memory caching to handle thousands of rules without slowing down your website.<\/p>\n\n<h3>\ud83d\udd27 How It Works (Under the Hood)<\/h3>\n\n<p>Unlike basic redirect plugins, Linko Media Path Mapper &amp; Swapper uses a safe \"Dual-Layer\" architecture:\n*   <strong>Layer 1:<\/strong> Intercepts URLs at the PHP data level (before HTML is generated) for zero performance overhead.\n*   <strong>Layer 2:<\/strong> Uses a highly optimized output buffer with regex extraction to catch hardcoded theme URLs (like WebP <code>&lt;picture&gt;<\/code> tags) without causing memory exhaustion.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>linko-media-path-mapper-and-swapper<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install it directly through the WordPress plugins screen.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Navigate to <strong>Linko Media Path Mapper &amp; Swapper<\/strong> in your admin sidebar to start creating custom paths.<\/li>\n<li>Go to <strong>Redirect Rules<\/strong> to manage your 301\/302 redirects.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20break%20my%20existing%20images%20if%20i%20deactivate%20the%20plugin%3F\"><h3>Will this break my existing images if I deactivate the plugin?<\/h3><\/dt>\n<dd><p>No. The plugin does not physically move your files or change WordPress core data. If you deactivate it, your site will simply revert to the default <code>\/wp-content\/uploads\/...<\/code> URLs.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20page%20builders%20like%20elementor%20or%20divi%3F\"><h3>Does it work with page builders like Elementor or Divi?<\/h3><\/dt>\n<dd><p>Yes. The plugin hooks deep into WordPress core filters (<code>wp_get_attachment_url<\/code>, <code>the_content<\/code>, etc.) and has specific compatibility built-in for ACF image and file fields.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20replace%20a%20file%20using%20the%20media%20replacer%3F\"><h3>What happens if I replace a file using the Media Replacer?<\/h3><\/dt>\n<dd><p>The plugin safely overwrites the physical file on the server. Your custom URL remains exactly the same, so you don't lose any SEO value or social media shares.<\/p><\/dd>\n<dt id=\"can%20i%20redirect%20an%20entire%20old%20domain%20to%20my%20new%20wordpress%20paths%3F\"><h3>Can I redirect an entire old domain to my new WordPress paths?<\/h3><\/dt>\n<dd><p>Yes! In the Redirect Rules tab, simply paste the full old URL (e.g., <code>https:\/\/olddomain.com\/about-us<\/code>) as the source, and your new path (e.g., <code>\/about<\/code>) as the target.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20caching%20plugins%20like%20wp%20rocket%3F\"><h3>Does this work with caching plugins like WP Rocket?<\/h3><\/dt>\n<dd><p>Yes. The plugin automatically clears its own internal URL mapping cache whenever a file is replaced or a path is updated. For hard caches, a simple \"Purge All\" in your caching plugin will reflect the new URLs.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Core Feature: Custom media path mapping with extension control.<\/li>\n<li>Core Feature: Smart WebP companion auto-mapping.<\/li>\n<li>Core Feature: Advanced media file replacement (keep date, rename, change date).<\/li>\n<li>Core Feature: Redirect Rules manager (301, 302, 404) with multi-domain support.<\/li>\n<li>Performance: Dual-layer URL replacement to prevent memory leaks.<\/li>\n<li>Security: Full XSS, SQL Injection, and CSRF protection.<\/li>\n<\/ul>","raw_excerpt":"Transform messy upload URLs into clean custom paths. Seamlessly replace files and manage 301\/302\/404 redirects without breaking links.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/338748","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=338748"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ajiajish"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=338748"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=338748"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=338748"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=338748"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=338748"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=338748"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}