# `PhoenixKit.Modules.Publishing.Web.Controller.SlugResolution`
[🔗](https://github.com/BeamLabEU/phoenix_kit/blob/v1.7.63/lib/modules/publishing/web/controller/slug_resolution.ex#L1)

URL slug resolution for the publishing controller.

Handles resolving URL slugs to internal slugs, including:
- Per-language custom URL slugs
- Previous URL slugs for 301 redirects
- DB-based slug lookups

# `build_post_redirect_url`
[🔗](https://github.com/BeamLabEU/phoenix_kit/blob/v1.7.63/lib/modules/publishing/web/controller/slug_resolution.ex#L83)

Builds redirect URL for 301 redirects from cached post data.

# `build_redirect_url_from_slugs`
[🔗](https://github.com/BeamLabEU/phoenix_kit/blob/v1.7.63/lib/modules/publishing/web/controller/slug_resolution.ex#L100)

Builds redirect URL when we only have slug data (no full post struct).

# `resolve_url_slug`
[🔗](https://github.com/BeamLabEU/phoenix_kit/blob/v1.7.63/lib/modules/publishing/web/controller/slug_resolution.ex#L26)

Resolves URL slug to internal slug using cache/DB.

Returns:
- `{:redirect, url}` for 301 redirect to new URL
- `{:ok, identifier}` for resolved internal slug
- `:passthrough` for direct use

# `resolve_url_slug_to_internal`
[🔗](https://github.com/BeamLabEU/phoenix_kit/blob/v1.7.63/lib/modules/publishing/web/controller/slug_resolution.ex#L65)

Resolves a URL slug to the internal directory slug.
Used by versioned URL handler and other places that need the internal slug.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
