Удалить слеш в конце URL

Вчера написал код, который проверяет есть ли в конце текущего URL слеш (/) и если есть, удаляет, затем перенаправляет на этот же адрес, но уже без слеша в конце.
Сам код:
# Удаление слеша в конце URL
if (basename(substr($_SERVER['REQUEST_URI'], -1) == '/'))
{
	$request_url = rtrim($_SERVER['REQUEST_URI'], '/');
	header('Location: http://' . $_SERVER['HTTP_HOST'] . $request_url, true, 301);
	exit;	
}

Если надо удалять слеш только у одно файла, скажем у файла blog.php, то замените условие:
if (basename(substr($_SERVER['REQUEST_URI'], -1) == '/'))

на:
if (basename($_SERVER['SCRIPT_FILENAME']) == 'blog.php' and substr($_SERVER['REQUEST_URI'], -1) == '/')

А если требуется обратное - везде слеш удалять, а файл blog.php должен остаться со слешем, то условие будет таким:
if (basename($_SERVER['SCRIPT_FILENAME']) != 'blog.php' and substr($_SERVER['REQUEST_URI'], -1) == '/')

Еще один способ удаления слеша в конце URL, при помощи .htaccess:
    # Deleting slash
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} ^(.*)/$
    RewriteRule ^(.*)/$ /$1 [R=301,L]
Теги: PHP, .htaccess
Автор: