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

  • Ensures request_uri() receives the correct request path.

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

Example Usage with request_uri() in PHP:

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:

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.

redirect()

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

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

Example:

sanitize_url()

  • Sanitizes URLs by removing invalid characters.

  • Uses FILTER_SANITIZE_URL, a built-in PHP filter.

Example:

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:

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?