{"id":397354,"date":"2026-11-11T19:46:51","date_gmt":"2026-11-11T19:46:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ffas-redirection-manager\/"},"modified":"2026-11-11T19:46:38","modified_gmt":"2026-11-11T19:46:38","slug":"ffas-redirection-manager","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/ffas-redirection-manager\/","author":20579094,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"FFAS Redirection Manager","header_author":"Fernando Fas","header_description":"Manage WordPress redirects and optional login redirection rules.","last_updated":"2026-11-11 19:46:38","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/profiles.wordpress.org\/fernandofas2909\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":66,"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":"fernandofas2909","date":"2026-11-11 19:46:38","revision":3796972}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3796972,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3796972,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3796972,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3796972,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[950,5370,21879,925,726],"plugin_category":[],"plugin_contributors":[265834],"plugin_business_model":[],"class_list":["post-397354","plugin","type-plugin","status-publish","hentry","plugin_tags-301-redirect","plugin_tags-302-redirect","plugin_tags-login-redirect","plugin_tags-redirection","plugin_tags-redirects","plugin_contributors-fernandofas2909","plugin_committers-fernandofas2909"],"banners":{"banner":"https:\/\/ps.w.org\/ffas-redirection-manager\/assets\/banner-772x250.png?rev=3796972","banner_2x":"https:\/\/ps.w.org\/ffas-redirection-manager\/assets\/banner-1544x500.png?rev=3796972","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ffas-redirection-manager\/assets\/icon-128x128.png?rev=3796972","icon_2x":"https:\/\/ps.w.org\/ffas-redirection-manager\/assets\/icon-256x256.png?rev=3796972","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>FFAS Redirection Manager lets site administrators create URL redirects without manually editing server configuration files.<\/p>\n\n<p>Each rule contains a source URL, a destination URL and a redirect type. Source and destination values can be entered as complete URLs or as paths such as <code>\/old-page<\/code> and <code>\/new-page<\/code>. Relative paths are converted to URLs for the current site.<\/p>\n\n<h4>Standard URL redirects<\/h4>\n\n<p>Use a standard rule when a page has moved, a URL has changed or visitors should be sent to a different destination.<\/p>\n\n<ul>\n<li>Choose <strong>301 - Permanent<\/strong> when the old URL has permanently moved.<\/li>\n<li>Choose <strong>302 - Temporary<\/strong> when the move is temporary.<\/li>\n<li>Set a start date\/time and an end date\/time for a 302 rule. Leave the start blank to begin immediately; an end is required when saving a 302 rule.<\/li>\n<li>Review, edit or delete existing rules from the same dashboard page.<\/li>\n<\/ul>\n\n<p>Redirects are matched against the requested path, ignoring a trailing slash. When the source includes a query string, that query string must also match. A source entered as a full URL is limited to that host. Destinations may be on the current site or an external website selected by an administrator.<\/p>\n\n<p>WordPress installations in a subdirectory are supported. On a site at <code>https:\/\/example.com\/wordpress<\/code>, both <code>\/old-page<\/code> and <code>\/wordpress\/old-page<\/code> resolve to the same source without adding the subdirectory twice.<\/p>\n\n<p>Dates use the WordPress site timezone shown next to the start field. A scheduled 302 is inactive before its start and stops at its end. The original page then resumes its normal behaviour. Legacy imported rules without dates remain compatible; edit them to add an end date. Redirect responses send cache-control headers to avoid retaining a scheduled redirect past its end. A 302 is a different HTTP status from a 301 even without a schedule.<\/p>\n\n<h4>First-login redirects<\/h4>\n\n<p>Enable <strong>Only apply on first login<\/strong> to use a rule as a one-time destination for a user's first detected login.<\/p>\n\n<p>The plugin records login state in WordPress user metadata. When a qualifying user logs in, the first enabled and unexpired first-login rule is applied once and then marked as completed for that user. Tracking begins after the plugin is activated, so the first login detected by this plugin is treated as the user's first login for this feature.<\/p>\n\n<p>First-login rules can be useful for sending a new user to an onboarding page, account instructions or another administrator-selected destination. They do not replace WordPress role and capability controls.<\/p>\n\n<h4>Settings export and import<\/h4>\n\n<p>The Export \/ Import screen can download this plugin's redirect rules as a JSON settings file and restore a compatible FFAS Redirection Manager settings file on another site. Review imported destinations before using them on a production website.<\/p>\n\n<p>The plugin stores its rules in the WordPress database. It does not write redirect rules, robots.txt or LLMS.txt files into the WordPress installation directory.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>The plugin does not send redirect rules or login-tracking data to FFAS or any external service. Rules are stored in the WordPress database. First-login state is stored as user metadata on the website.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In WordPress, open <strong>Plugins &gt; Add New Plugin &gt; Upload Plugin<\/strong>.<\/li>\n<li>Select the FFAS Redirection Manager ZIP file, install it and activate it.<\/li>\n<li>Open <strong>FFAS Redirection Manager<\/strong> in the WordPress dashboard.<\/li>\n<li>Choose 301 or 302, enter the source and destination, and optionally enable first-login behaviour.<\/li>\n<li>Select <strong>Add Redirect<\/strong>.<\/li>\n<li>Test the source URL in a private browser window before relying on the rule in production.<\/li>\n<li>For a 302 rule, choose the required end date\/time and an optional start date\/time before saving.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"should%20i%20choose%20a%20301%20or%20302%20redirect%3F\"><h3>Should I choose a 301 or 302 redirect?<\/h3><\/dt>\n<dd><p>Use 301 for a permanent move. Use 302 when the redirect is temporary or should expire.<\/p><\/dd>\n<dt id=\"can%20i%20enter%20relative%20paths%3F\"><h3>Can I enter relative paths?<\/h3><\/dt>\n<dd><p>Yes. Values such as <code>\/old-page<\/code> and <code>\/new-page<\/code> are converted to URLs on the current site. Complete URLs are also supported.<\/p><\/dd>\n<dt id=\"can%20a%20redirect%20point%20to%20another%20website%3F\"><h3>Can a redirect point to another website?<\/h3><\/dt>\n<dd><p>Yes. An administrator can enter a complete external destination URL. Only trusted administrators with the <code>manage_options<\/code> capability can create or change rules.<\/p><\/dd>\n<dt id=\"what%20does%20the%20expiration%20field%20do%3F\"><h3>What does the expiration field do?<\/h3><\/dt>\n<dd><p>The end date stops a 302 rule at the selected site-local date and time. The optional start date postpones when it begins. End must be later than start. Permanent 301 rules do not use either date field.<\/p><\/dd>\n<dt id=\"how%20does%20the%20first-login%20option%20work%3F\"><h3>How does the first-login option work?<\/h3><\/dt>\n<dd><p>The plugin tracks whether the user has a pending first detected login and records when a first-login rule has been used. The rule is then skipped for that user on later logins.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20edit%20.htaccess%2C%20robots.txt%20or%20other%20root%20files%3F\"><h3>Does the plugin edit .htaccess, robots.txt or other root files?<\/h3><\/dt>\n<dd><p>No. Redirect rules and login tracking data are stored through WordPress options and user metadata.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20the%20plugin%20is%20uninstalled%3F\"><h3>What happens when the plugin is uninstalled?<\/h3><\/dt>\n<dd><p>The current release retains its saved rules and login-tracking metadata to avoid destructive data loss.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial standalone release.<\/li>\n<li>Added 301 and 302 URL redirects with optional 302 expiration.<\/li>\n<li>Added optional first-login redirects.<\/li>\n<li>Added scoped settings export and import.<\/li>\n<li>Fixed redirect matching for WordPress sites installed in a subdirectory.<\/li>\n<li>Added visible 302 start\/end controls, site-timezone validation and schedule preservation in JSON exports.<\/li>\n<li>Fixed external first-login destinations and admin success notices.<\/li>\n<\/ul>","raw_excerpt":"Create 301 and 302 URL redirects and optional first-login rules from the WordPress dashboard.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/397354","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=397354"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/fernandofas2909"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=397354"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=397354"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=397354"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=397354"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=397354"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=397354"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}