Route public URLs for submits and redirects

This guide is for a developer or technical admin who controls Apache (or compatible) rewrites at the site root and inside wckd-forms/. You will confirm the canonical POST path for forms, reachable thank-you and not-sent targets, and (when needed) WordPress-safe rule order. Operators do not need this page unless they edit server config.

Visitors POST to a single public path; the server must forward that path to wckd-forms/submit.php without stripping the body.

  1. Open the site root .htaccess (or equivalent vhost rewrite map).
  2. Confirm a rule maps /form-submit to wckd-forms/submit.php (this repository ships that rule; restore it if a host panel overwrote the file).
  3. Open wckd-forms/.htaccess and confirm the package-local form-submit rule still targets submit.php for requests that enter the package first.

Screenshot. Show the root .htaccess block containing the form-submit rewrite.

Important. If this rule is missing, the browser returns 404 or the wrong script and submissions never reach app/public/api/intake.php.

Intake redirects the browser to your configured success or failure URL; those URLs must return HTTP 200.

  1. During install, either publish default pages into the site root or supply custom URL paths you already host.
  2. After install, override per form under Settings → Forms when a template needs different destinations.
  3. Compare each configured URL with the real scheme, host, and path (leading slash, HTTPS vs HTTP).

A CMS front controller must not answer POSTs meant for /form-submit.

  1. Open htaccess_wordpress.txt at the repository root.
  2. Copy the WCKD block (form-submit, thank-you, not-sent, and package paths as shown there).
  3. Paste that block above the WordPress rewrite block so WordPress does not swallow /form-submit.
  4. Clear server and CDN caches, then repeat a browser submit test.

Screenshot. Show WordPress root .htaccess with the WCKD block above the CMS rules.

Pretty paths such as /wckd-forms/dashboard/settings/operations rewrite internally to .php files. A 301 from a .php URL to an extensionless URL is normal when both exist.

You reduce accidental indexing of admin URLs.

  1. Keep robots.txt disallowing /wckd-forms/dashboard/ as described in the root README.
  2. Decide separately whether public thank-you or not-sent pages should carry noindex meta (common for conversion pages).

You observe the full path from browser to inbox.

  1. Submit a test lead from a page that calls wckd_form() (see Embed forms).
  2. Confirm the browser lands on your thank-you URL, not the not-sent URL.
  3. Open Leads and confirm the new submission row exists; if the URL contains ?wckd=, use Troubleshooting.
  • POST hits WordPress 404: WCKD rules sit below the CMS catch-all; move them up per Step 3.
  • Thank-you 404: installer published to the wrong disk path or the per-form URL has a typo under Settings → Forms.
  • HTTPS redirect loops on localhost: root .htaccess may force HTTPS; use a host listed as exempt in that file or test with TLS locally.