Удалить слэш в конце строки php
Я приведу 2 кода, один всегда удаляет слэш на конце URL, а другой всегда добавляет. Начнём с 1-го варианта:
Теперь если пользователь введёт «http://mysite.ru/dir/» его автоматически перенаправит на «http://mysite.ru/dir«. Разумеется, все GET-параметры сохранятся. Например, если пользователь вводил: «http://mysite.ru/dir/?a=5&b=7«, то его перенаправит по такому адресу «http://mysite.ru/dir?a=5&b=7«.
А сейчас давайте рассмотрим вариант, когда нам обязательно нужен слэш в конце URL, то есть чтобы при вводе «http://mysite.ru/dir» был автоматический переход на «http://mysite.ru/dir/«:
С этим кодом в .htaccess слэш будет добавляться автоматически в конце URL.
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Комментарии ( 13 ):
Скажите, а можно через «.htaccess» удалить расширения файлов, к примеру было mysite.php а стало просто mysite?
Добрый день. Была такая проблема, слеш на конце ссылок. Все сделал как вы написали..все работает. Но перестало заходить в админку. Joomla. там видимо на конце тоже слеш. Как быть в таком случае?
Как быть в таком случае? Не использовать CMS.
Скажите, а как мне добавить слеш в конце для opencart, данный код не работает
Здравствуйте! Подскажите, пожалуйста, как сделать исключения для страниц с Get параметрами: т.е., везде на сайте со слешем в конце url, а на страницах с Get параметрами — без. Например: www.site.ru/catalog/ и www.site.ru/login (уже без слеша), чтобы можно было добавлять страницы в такие исключения. Спасибо!
Ребят, скажите, а реально сделать, чтобы http://site.ru/contacts.php открывался как http://site.ru/contacts/ Т.е ссылка то выглядит как ссылка на директорию contacts, но это файл. Или по старинке в папку contacts поместить index.php?
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2021 Русаков Михаил Юрьевич. Все права защищены.
Убрать слэш / в конце URL
День добрый. Помогите разобраться с проблемой.
Но он не дает никакого эффекта. Вернее вызывает зацикливание рерайта.
Подозреваю что я натолкнулся на какой-то bug Апача, либо конкретно модуля mod_dir.
И всё же… что делать?
Файла скрипта пока не существует. Есть только папка. По идее при обращении по этому URL пока что должен прилетать 404.
DirectorySlash Off
SetHandler script-handler
Вот так, с SetHandler-ом, пробывали?
Сорри
DirectorySlash Off
SetHandler some-handler
DirectorySlash off
SetHandler script-handler
DirectorySlash on
SetHandler default-handler
Action script-handler /cgi/script.cgi
Не сказать что это проблема. Это необходимость…
Мне поставили задачу, настроить сервер таким образом, чтобы по обоим ссылкам domain.tld/script и domain.tld/script/ вызывался один и тот же скрипт. При этом существует каталог с таким именем.
И mod_dir перехватывает ссылку еще до mod_rewrite…
А диркетива DirectorySlash off не работает…
Я думал что наткнулся на баг. И что может быть кто-то уже сталкивался, и знает решение.
Пока что решили переименованием каталога со скриптом, и rewrite-ами, но загадочное поведение диркетивы DirectorySlash off интересна.
stripcslashes
(PHP 4, PHP 5, PHP 7, PHP 8)
stripcslashes — Удаляет экранирование символов, произведённое функцией addcslashes()
Описание
Список параметров
Строка, у которой нужно убрать экранирование.
Возвращаемые значения
Возвращает неэкранированную строку.
Смотрите также
User Contributed Notes 3 notes
stripcslashes does not simply skip the C-style escape sequences \a, \b, \f, \n, \r, \t and \v, but converts them to their actual meaning.
$str = «we are escaping \r\n» ; //we are escaping
> /*QUOTE
> stripcslashes(‘He\xallo’) == ‘He’.»\n».’llo’
> stripcslashes(‘H\xaello’) == ‘H’.chr(0xAE).’llo’
> */
>
> You Can Use
>
> stripcslashes(‘H\xa0ello’) == ‘H’.chr(0xA0).’ello’
Correct. But not what (I think) you were trying to show.
>
> as xa0 = xa = chr(xA)
Not so correct.
Does 9==90? No, because that added zero *after* the number means something.
It’s when you add a zero *before* the number does it not affect the value.
I’d like to assume that was a typo, but with the Internet as it is, who knows.
> You Can Use
>
> stripcslashes(‘H\x0aello’) == ‘H’.chr(0x0A).’ello’
fix’d
you might want to do a double stripslashes to completely remove 3 consecutive slashes
$stripped = ‘this is a string with three\\\ slashes’;
$stripped = stripslahses($stripped);
would output:
‘this is a string with three\ slashes’
$stripped = ‘this is a string with three\\\ slashes’;
$stripped = stripslahses(stripslashes($stripped));
would output:
‘this is a string with three slashes’
Убираем повторяющиеся слеши в конце url
Предисловие: Новая рубрика
Порой самописные сайты и сайты с корявыми CMS полны технических огрехов и недоработок, что, в свою очередь, плодит множество ошибок при индексировании сайта поисковыми системами.
Чаще эти вещи не видны невооружённым взглядом, а ещё чаще даже не предполагаются как проблема в принципе.
Открываем новую рубрику, куда будем складывать сухой код для решения проблем по части настройки сайтов, доработки движков и прочих «костылей» из серии «когда ждать разработчика нет сил и смысла. Сделаем всё сами — спасибо!».
Чит-код
Назовём её «Чит-код». В названии прекрасно всё: тут и любые многими читы, упрощающие жизнь, тут и код — команды и инструкции для программ.
Если что-то может пойти не так, именно так оно и пойдёт
Например, если страница на вашем сайте по адресу https://your-site.ru/page-with-slashes/// будет открываться без проблем и адрес в строке браузера так и останется с кучей слешей на конце, то знайте что для поисковиков:
Это четыре разные страницы. Хотя уверен, показывают они одно и тоже.
Исправляем недоразумение
Любые недоразумения с повторяющимися слешами будут редиректится в один, тем самым не плодя малополезные клоны одной страницы.
Убрать несколько слешей в конце url на Битриксе
Можно настроить редиректы в файлах конфигурации Nginx, но доступ к ним очень редко дают да и то, если сайт крутится на выделенном сервере. А это для небольших проектов, как правило, экзотика и как “пушкой по воробьям”.
Поэтому делаем «костыль» — убираем слеши в URL с помощью PHP
Как это сработало у меня.
Как это вообще возможно?!
Если честно, поисковые системы специально не будут искать такие технические дыры в вашем сайте. Боты ходят по ссылкам и по специально указанным страницам в файле sitemap.xml и шансы найти именно дубли с повторяющимися слешами маловероятны.
Но вот если кто-то специально подскажет боту, направив ссылкой, а то и не одной…
Чисто моё мнение, что вышеописанный код просто подстраховка от любителей чёрного SEO и недалёких конкурентов-технарей.
Также некоторые алерт-сервисы ругаются и надоедают, найдя возможности для пессимизации. Один раз настроил и забыл.
Если вы не знаете зачем этот файл нужен, где он находится и за что отвечает, то срочно закрывайте эту страницу!
Файл для настройки веб-сервера не место для баловства и учебных экспериментов.
Как с помощью PHP удалить символ – все способы реализации
Дата публикации: 2017-05-19
От автора: может, слов не выкинешь из песни. Но вот в PHP удалить символ проще простого. Сегодня этим и займемся.
Функциональный подход
Имеется в виду использование встроенных в ядро языка функций. Сначала используем str_replace(). Она принимает три аргумента: символ замены, заменяемый символ и исходную строку. Пример:
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
Но это не единственная функция для изъятия «нежелательного» элемента из строки. Вот еще одна:
Здесь для удаления определенных частей текста применяем функцию substr(). В качестве параметров передаем ей первоначальную строку, положение, с которого нужно отсечь строку, и положение последнего знака возвращаемой подстроки.
Использование данной функции оправдано, если знаете очередность символа, который нужно изъять.
Вот еще одна функция, помогающая в решении проблемы. strstr() возвращает часть строки до или после переданного ей символа. Как от него избавиться:
Для этого в параметрах функции указываем true и получаем левую часть строки от символа, но уже без него.
Регулярки, потому что регулярно
Как всегда, господа, «на второе» у нас регулярные выражения. Их использование крайне удобно для решения некоторых «неудобных» ситуаций. К примеру, если нужно избавиться от повторяющихся знаков:
Здесь применяется функция для работы с регулярками preg_replace(). В переданной ей строке она ищет заданный символ и меняет его на другой. В приведенном выше примере таким образом мы избавились от нулей в тексте.
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
Разработка веб-приложения на PHP
Создайте веб-приложение на PHP на примере приема платежей на сайте








