=== Redirect Manager DL ===
Contributors: devlemon
Tags: redirect, 301 redirect, redirect manager, url redirect, broken links
Requires at least: 6.2
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Simple, lightweight and secure redirect manager. Create and manage 301, 302, 307 and 410 redirects without editing server configuration files.

== Description ==

Redirect Manager DL lets you manage URL redirects directly from the WordPress admin — no server file editing required.

**Who needs this?**

* Your page slugs changed after a redesign.
* You migrated from another platform and old URLs are still getting traffic.
* A post was permanently removed and you want to return a proper 410 Gone response.
* You have campaigns whose URLs changed and you need to preserve external links.

**Supported redirect types**

* 301 — Moved Permanently (most common; tells search engines to transfer link equity)
* 302 — Found / Temporary Redirect
* 307 — Temporary Redirect (method-preserving)
* 410 — Gone (tells search engines the content is permanently removed)

**What you can do**

* Create, edit, enable, disable, and delete redirects.
* Import redirects in bulk via CSV.
* Export your current redirects to CSV.
* Search by source or target, and filter by redirect type or active status.
* See how many times each redirect has been triggered (hit counter).
* Loop detection prevents you from creating circular redirects.

**Design philosophy**

* One function, done well. No SEO suites, analytics, or marketing tools bundled in.
* Zero front-end overhead — no CSS, JavaScript, or external requests added to your site.
* Privacy-first: no visitor IPs, user agents, or personal data stored anywhere.
* Redirects are processed via WordPress APIs — no `.htaccess` modifications.
* Fully uninstallable: removing the plugin cleans up all its database tables and options.

== Installation ==

1. Upload the `redirect-manager-dl` folder to `/wp-content/plugins/`, or install it via the WordPress plugin screen.
2. Activate the plugin.
3. Go to **Tools → Redirect Manager DL** to start adding redirects.

== Frequently Asked Questions ==

= Does it support external redirects? =
Yes. You can redirect to any valid `http://` or `https://` URL. Dangerous URL schemes such as `javascript:`, `data:`, and `file:` are always rejected.

= Does it collect visitor data? =
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.

= What happens when I deactivate the plugin? =
Your redirect rules are preserved in the database. Redirects will simply stop working while the plugin is deactivated.

= What happens when I delete the plugin? =
All redirect rules and plugin options are permanently removed from the database.

= What is the difference between 301, 302, 307, and 410? =
301 is a permanent redirect — 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.

= Does it modify .htaccess or any server configuration files? =
No. Redirect Manager DL processes redirects entirely through WordPress PHP execution. Server configuration files are never touched.

= Does it support wildcards or regular expressions? =
Not in this version. Matching is exact and based on the URL path. This keeps behaviour predictable and easy to audit.

= What does "query strings are ignored during matching" mean? =
A redirect rule for `/page/` will also match `/page/?utm_source=newsletter`. The query string is not part of the match criteria.

= How does loop detection work? =
The plugin checks for direct loops (A → A) and one-hop indirect loops (A → B where B → A already exists) at the time you save a redirect.

= Can I import existing redirects? =
Yes. Go to the Import page and upload a CSV file with the format: `source,target,status_code`. See the import page for a full example.

== Screenshots ==

1. The redirect list with stats bar, search, and filter controls.
2. Adding a new redirect — 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.

== Changelog ==

= 1.0.0 =
* Initial release.

== Upgrade Notice ==

= 1.0.0 =
Initial release.
