Удаление лишних слешей

252
08 сентября 2017, 23:01

Здравствуйте! Есть сайт, где в адресной строке можно ввести вместо одного / два и более, а страницы все равно будут открываться(пример: test//home///page). Необходимо сделать так чтобы если в адресной строке встречается два и более / подряд, ссылаться на ту же самую страницу только уже с нормальными слешами (например: test/home/page). Пробовал сделать так:

 $pos = strpos($_SERVER['REQUEST_URI'], '//');
                if($pos != '')
                {
                    $link = str_replace ( '//', '/', $_SERVER['REQUEST_URI']);
                    header('Location: ' . $link .'');
                }

Почему-то не берет во внимание слешы в самом начале адреса (например:test//home/page).

Answer 1

Вот вам решение через .htaccess для apache:

RewriteEngine On
RewriteCond %{REQUEST_URI} //
RewriteRule ^(.*)$ http://your.site/$1 [R,L,QSA]

На основании этого ответа.

Answer 2

используйте замену регуляркой

$link = preg_replace('/\/+/', '/', $_SERVER['REQUEST_URI']);

Но такое выглядит кривовато (зубочистка), поэтмоу, обычно пишут так:

$link = preg_replace('!/+!', '/', $_SERVER['REQUEST_URI']);

Но лучше подобные задачи решать средствами apache/nginx.

READ ALSO
PHP генератор псевдослучайных чисел

PHP генератор псевдослучайных чисел

Здравствуйте! Есть набор чисел от 0 до 15 включительно, их около 70Нужен ГПСЧ, который сможет сгенерировать все эти числа используя какой-то...

386
Хранение конфигурации в файле

Хранение конфигурации в файле

У меня есть список настроек которые пользователь(администратор) может менять в интерфейсе web приложенияКак правило в таких случаях настройки...

186
Как можно получить свою текущую прямую трансляцию из ютуба через api?

Как можно получить свою текущую прямую трансляцию из ютуба через api?

Не могу в документации найти метод, который бы возвращал мне мои прямые трансляции в текущий моментМожет кто знает, поможет?

238
Как загружать статьи из mysql через ajax

Как загружать статьи из mysql через ajax

Допустим есть бд в которой мои статьиНа главную страницу при загрузке выводится 10 статей

252