Merhaba bildiğim kadarı ile yardımcı olmak isterim, bu şekilde bir önceki sayfaya yönlendirme durumlarını bende kendi yazdığım panelimde kullanıyorum. Ancak benim yöntemim biraz farklı.
Öncelikle şunu söyleyim HTTP_REFERER çok güvenli bulunmayan bir yöntemdir. Bunu php .net den de teyit edebilirsin.

Ben REQUEST_URI ile bir önceki sayfanın tam adresini bir sessiona kaydediyorum ve geri gelme ihtiyacı olduğunda bu sessionu kullanıyorum. Senin istediğin 1 2 3 önceki sayfa içinde aynı şekilde bütün yol ağacını kaydederek ulaşabilirsin.

Senin sorularına gelecek olursak;

$url = htmlspecialchars($_SERVER['HTTP_REFERER']);
echo "back";
?>


Burada htmlspecialchars kullanmasının nedeni karakterleri etkisizleştimek olası bir slq injection önüne geçmek.

$referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';

Burada da if in kısa halini kullanıyor, uzun hali aşağıdaki gibi

if(isset($_SERVER['HTTP_REFERER'])){$referer = $_SERVER['HTTP_REFERER']}

Yani burası ilk sayfa değilse $referer değişkenine sayfayı atayacak, ilk sayfa ise HTTP_REFERER boş dönecek.

-------
header('Location: ' . $_SERVER['HTTP_REFERER']);

bunun sonuna da şu şekilde ekleme yapabilirsin.

header('Location: ' . $_SERVER['HTTP_REFERER'].'/eklenecek_adres');

yada eklenecek adresi değişkene atayıp da ekleyebilirsin.

Umarım yazdıklarım yardımcı olur.