Здравствуйте! Есть сайт, где в адресной строке можно ввести вместо одного /
два и более, а страницы все равно будут открываться(пример: 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
).
Вот вам решение через .htaccess для apache:
RewriteEngine On
RewriteCond %{REQUEST_URI} //
RewriteRule ^(.*)$ http://your.site/$1 [R,L,QSA]
На основании этого ответа.
используйте замену регуляркой
$link = preg_replace('/\/+/', '/', $_SERVER['REQUEST_URI']);
Но такое выглядит кривовато (зубочистка), поэтмоу, обычно пишут так:
$link = preg_replace('!/+!', '/', $_SERVER['REQUEST_URI']);
Но лучше подобные задачи решать средствами apache/nginx.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Здравствуйте! Есть набор чисел от 0 до 15 включительно, их около 70Нужен ГПСЧ, который сможет сгенерировать все эти числа используя какой-то...
У меня есть список настроек которые пользователь(администратор) может менять в интерфейсе web приложенияКак правило в таких случаях настройки...
Не могу в документации найти метод, который бы возвращал мне мои прямые трансляции в текущий моментМожет кто знает, поможет?
Допустим есть бд в которой мои статьиНа главную страницу при загрузке выводится 10 статей