Uri_helper

This utility library offers a set of functions for managing URLs, handling redirects, sanitizing input, generating slugs, and processing request URIs in web applications.

Nginx in Uri_helper

Since Uri_helper provides functions for handling request URIs and generating structured URLs, proper Nginx configuration is required to remove index.php from URLs and allow request_uri() to function correctly.

Pretty URLs

location / {
    try_files $uri $uri/ /index.php?$query_string;
}
  • If the requested URL matches a file or directory, it serves it directly.

  • Otherwise, the request is rewritten to index.php, ensuring request_uri() processes a clean and structured URL.

This ensures URLs like:

https://phpfast.net/products?page=2 remain structured without unnecessary slashes or index.php in the URL.

Handling Redirects Efficiently

The redirect() function in Uri_helper uses PHP’s header('Location: ...') method for redirection. However, on Nginx, it is possible to leverage server-level redirection for efficiency.

Optimizing Redirects in Nginx Instead of handling all redirects in PHP, you can configure Nginx to process common redirects like forcing HTTPS or redirecting old URLs:

server {
    listen 80;
    server_name phpfast.net;
    return 301 https://$server_name$request_uri;
}
  • Redirects HTTP to HTTPS without relying on PHP.

  • Reduces the need for redirect() calls in the application, improving performance.

Supporting Clean Request URIs

The request_uri() function in Uri_helper ensures clean URL formatting, removing unnecessary slashes and normalizing paths. However, Nginx needs to pass the correct $_SERVER['REQUEST_URI'] to PHP.

Ensure Correct Request URI Handling in Nginx

fastcgi_param REQUEST_URI $request_uri;
  • Ensures request_uri() receives the correct request path.

  • Prevents duplicate slashes (//) in URLs from being processed incorrectly.

Example Usage with request_uri() in PHP:

echo request_uri('https://phpfast.net//user/info');
// Output: user/info

Without proper configuration, Nginx may pass incorrect paths, leading to unexpected results in request_uri().

Functions in Uri_helper

request_uri()

  • Retrieves the clean request URI from $_SERVER['REQUEST_URI'].

  • Removes extra slashes and normalizes the path.

  • Redirects if necessary to enforce a clean URL structure.

Example:

echo request_uri('https://phpfast.net/user/info/');
// Output: user/info/

echo request_uri('https://phpfast.net/user//info//');
// Output: user/info/

echo request_uri('https://phpfast.net/user/info?page=3');
// Output: user/info/

echo request_uri('https://phpfast.net/');
// Output: empty

base_url()

  • Generates the base URL for the application.

  • Retrieves the app_url from the config file if not already stored in $base_url.

  • Trims extra slashes and handles query strings, ensuring a clean and structured URL.

echo base_url('products?page=2');
// Output: https://phpfast.net/products?page=2

redirect()

  • Redirects the user to another URL using the header() function.

  • exit(); ensures that no further code is executed after redirection.

Example:

redirect('https://phpfast.net/dashboard');

sanitize_url()

  • Sanitizes URLs by removing invalid characters.

  • Uses FILTER_SANITIZE_URL, a built-in PHP filter.

Example:

echo sanitize_url('https://phpfast.net/<script>alert(1)</script>');
// Output: https://phpfast.net/ AND alert(1)

url_slug()

  • Converts UTF-8 strings into SEO-friendly slugs.

  • Removes special characters, spaces, and accents (e.g., ĐD).

  • Replaces spaces with a delimiter (- by default).

Example:

echo url_slug('New Products in 2025!');
// Output: new-products-in-2025

Function

Purpose

base_url()

Generates the base URL of the application.

redirect()

Redirects to another URL.

sanitize_url()

Cleans a URL from invalid characters.

url_slug()

Converts a UTF-8 string into a slug.

request_uri()

Retrieves the clean request URI.

Last updated

Was this helpful?