Use when designing URL structures, slug generation, SEO-friendly URLs, redirects, or localized URL patterns. Covers route configuration, URL rewriting, canonical URLs, and routing APIs for headless CMS.
View on GitHubmelodic-software/claude-code-plugins
content-management-system
plugins/content-management-system/skills/url-routing-patterns/SKILL.md
January 21, 2026
Select agents to install to:
npx add-skill https://github.com/melodic-software/claude-code-plugins/blob/main/plugins/content-management-system/skills/url-routing-patterns/SKILL.md -a claude-code --skill url-routing-patternsInstallation paths:
.claude/skills/url-routing-patterns/# URL Routing Patterns
Guidance for designing URL structures, slug generation, and routing strategies for headless CMS architectures.
## When to Use This Skill
- Designing SEO-friendly URL structures
- Implementing slug generation
- Configuring redirect management
- Planning localized URL patterns
- Building routing APIs
## URL Structure Patterns
### Hierarchical URLs (Page-Based)
```text
/ # Home
/about # About page
/about/team # Team (child of About)
/about/team/leadership # Leadership (grandchild)
/products # Products listing
/products/software # Software category
/products/software/crm # Specific product
```
### Content Type URLs (Collection-Based)
```text
/blog # Blog listing
/blog/2025/01/my-article # Blog post with date
/blog/my-article # Blog post without date
/docs # Documentation home
/docs/getting-started # Doc section
/docs/getting-started/install # Doc page
/team/jane-doe # Team member profile
/portfolio/project-alpha # Portfolio item
```
### Hybrid URLs
```text
/products/software/crm # Category > Product
/blog/technology/ai-trends # Category > Post
/help/faq/billing # Section > Topic
```
## Slug Generation
### Slug Service
```csharp
public class SlugService
{
public string GenerateSlug(string text, SlugOptions? options = null)
{
options ??= new SlugOptions();
var slug = text
.ToLowerInvariant()
.Normalize(NormalizationForm.FormD);
// Remove diacritics
slug = new string(slug
.Where(c => CharUnicodeInfo.GetUnicodeCategory(c)
!= UnicodeCategory.NonSpacingMark)
.ToArray());
// Replace spaces and invalid chars
slug = Regex.Replace(slug, @"[^a-z0-9\s-]", "");
slug = Regex.Replace(slug, @"\s+", "-");
slug = Regex.Re