PHPackages                             concrete5-community/url\_aliases - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. concrete5-community/url\_aliases

ActiveConcrete5-package[Testing &amp; Quality](/categories/testing)

concrete5-community/url\_aliases
================================

A ConcreteCMS package to create alias URLs of pages, files and external URLs

1.2.1(5mo ago)010MITPHPPHP ^7.3 || ^8CI passing

Since Sep 6Pushed 5mo ago1 watchersCompare

[ Source](https://github.com/concrete5-community/url_aliases)[ Packagist](https://packagist.org/packages/concrete5-community/url_aliases)[ Docs](https://github.com/concrete5-community/url_aliases)[ GitHub Sponsors](https://github.com/sponsors/mlocati)[ Fund](https://paypal.me/mlocati)[ RSS](/packages/concrete5-community-url-aliases/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (7)Dependencies (1)Versions (8)Used By (0)

[![Tests](https://github.com/concrete5-community/url_aliases/actions/workflows/tests.yml/badge.svg)](https://github.com/concrete5-community/url_aliases/actions/workflows/tests.yml)

URL Aliases
===========

[](#url-aliases)

This repository contains the *URL Aliases* package for [ConcreteCMS](https://www.concretecms.org/).

Installation Methods
--------------------

[](#installation-methods)

- To support the author, you can install URL Aliases on recent versions of ConcreteCMS through the ConcreteCMS Marketplace - see
- For composer-based Concrete instances, simply run ```
    composer require concrete5-community/url_aliases
    ```
- Manual installation:
    1. download a `url_aliases-v….zip` file from the [releases page](https://github.com/concrete5-community/url_aliases/releases/latest)
    2. extract the zip file in your `packages` directory

Then, you have to login in your Concrete website, go to the Dashboard &gt; Extend Concrete &gt; Add Functionality, and install the package.

Introduction
------------

[](#introduction)

The URL Aliases package is a powerful tool designed to enhance URL management within your ConcreteCMS website. It provides a simple yet effective way to create clean, human-readable URLs that act as aliases for your existing content, including pages, files, and external URLs.

Instead of being stuck with the default URLs generated by the CMS, you gain full control over the addresses your users see. This is especially useful for creating short, memorable links for marketing campaigns or simply making your content easier to navigate.

### Key Features

[](#key-features)

- Create URL Aliases for Pages: Map a custom URL to any page on your site, regardless of its original path.
- Alias Files: Provide user-friendly URLs for files, such as PDFs or images, which normally have long, complex paths.
- Redirect to External URLs: Use your own domain to create short aliases that redirect to other websites. This is perfect for linking to social media profiles, partners' sites, or specific product pages.
- Flexible and Customizable: Easily manage, edit, and delete all your URL aliases from a single, intuitive interface within the ConcreteCMS dashboard.
- Redirect by Browser Language: You can define an alias that points to page A for English, to page B for German, and to page C for any other language.
- Log of requests that result in 404 - Not Found errors, even after the defined URL Aliases have been checked.
- Create URL Aliases from Additional Page Paths: keep all your aliases in just one central place (URL Aliases).

### Why You'll Love It

[](#why-youll-love-it)

- Enhanced User Experience: Clear and simple URLs are easier for users to remember and share, leading to better navigation and a more professional feel.
- Marketing and Analytics: Create short, targeted URLs for specific campaigns, which can be easily tracked and analyzed for performance.
- Complete Control: Break free from the CMS's predetermined URL paths and create addresses that best serve your content and your audience.
- Hit Count: See how many times an alias is being visited (including the date/time of the last visit)
- Test Interface: You can easily test if an alias works as expected (also with browser languages that differ from your default one)
- Support for Fragment Identifiers: When the alias target is a page, you can specify the exact point where the browser should land (for example, `/target#point-in-page`)
- Sopport for POST Forwarding: When the users send POST requests to the alias, you can configure the package to forward that data via POST

### How It Works

[](#how-it-works)

This package intercepts requests that result in a 404 – Not Found response.

When such a request is detected, it checks whether the requested path (and optionally the parameters received via the query string) matches a defined URL alias.

If a matching alias is found, the package rebuilds the response and issues a redirect to the alias destination.

This approach ensures there are no conflicts with existing pages (no surprises!) and optimizes speed (no alias searches when not needed).

### Usage

[](#usage)

Browse to the *System &amp; Settings* &gt; *URL Aliases* dashboard page.

There you can manage all the URL aliases.

### Requirements and Limits

[](#requirements-and-limits)

- Minimum PHP version: 7.3
- Aliases do not automatically resolve child pages. For example:
    - you have a page at path `/about`
    - you have a page at path `/about/me`
    - you create an alias named `/alias` that points to `/about`
    - `/alias` would resolve to `/about`
    - but `/alias/me` won't resolve to `/about/me`
- Forwarding files via POST is not supported: the package will only forward *normal* fields received via POST

Do you really want to say thank you?
------------------------------------

[](#do-you-really-want-to-say-thank-you)

You can offer me a [monthly coffee](https://github.com/sponsors/mlocati) or a [one-time coffee](https://paypal.me/mlocati) 😉

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance70

Regular maintenance activity

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity35

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~12 days

Recently: every ~17 days

Total

7

Last Release

176d ago

Major Versions

0.9.1 → 1.0.02025-09-09

### Community

Maintainers

![](https://www.gravatar.com/avatar/6e9d7ece045fc89575e083ee4852edf31218df403c84f41a0de01863dae982f5?d=identicon)[mlocati](/maintainers/mlocati)

---

Top Contributors

[![mlocati](https://avatars.githubusercontent.com/u/928116?v=4)](https://github.com/mlocati "mlocati (25 commits)")

---

Tags

urlpagepackageconcrete5concreteCMSfilecmsfakealiasaddonconcrete

### Embed Badge

![Health badge](/badges/concrete5-community-url-aliases/health.svg)

```
[![Health](https://phpackages.com/badges/concrete5-community-url-aliases/health.svg)](https://phpackages.com/packages/concrete5-community-url-aliases)
```

###  Alternatives

[concrete5/concrete5

Concrete – an open source content management system.

8302.5k2](/packages/concrete5-concrete5)[concrete5/core

Concrete core subtree split

19159.3k48](/packages/concrete5-core)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
