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.
- Open the site root
.htaccess(or equivalent vhost rewrite map). - Confirm a rule maps
/form-submittowckd-forms/submit.php(this repository ships that rule; restore it if a host panel overwrote the file). - Open
wckd-forms/.htaccessand confirm the package-localform-submitrule still targetssubmit.phpfor 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.
- During install, either publish default pages into the site root or supply custom URL paths you already host.
- After install, override per form under Settings → Forms when a template needs different destinations.
- 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.
- Open
htaccess_wordpress.txtat the repository root. - Copy the WCKD block (
form-submit, thank-you, not-sent, and package paths as shown there). - Paste that block above the WordPress rewrite block so WordPress does not swallow
/form-submit. - 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.
- Keep
robots.txtdisallowing/wckd-forms/dashboard/as described in the root README. - Decide separately whether public thank-you or not-sent pages should carry
noindexmeta (common for conversion pages).
You observe the full path from browser to inbox.
- Submit a test lead from a page that calls
wckd_form()(see Embed forms). - Confirm the browser lands on your thank-you URL, not the not-sent URL.
- 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
.htaccessmay force HTTPS; use a host listed as exempt in that file or test with TLS locally.
- Install: thank-you step during setup.
- Embed forms: where the POST originates.
- Troubleshooting:
?wckd=codes and intake.