- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Приветствую.
Могут быть такие урлы:
site.ru////
site.ru/razdel///
Как таким урлам отдавать 404 ответ сервера?
В .htaccess выше всех правил поставить:
RewriteCond %{REQUEST_URI} ^(.*)///$
RewriteRule . 404.php [L]
Содержимое 404.php
С таким:
И таким:
site.ru/razdel// - отдает статус 404
site.ru// - 200 ok
site.ru//razdel/ - 200 ok
Как победить?
В общем, нужно в урлах где будет содержаться подряд два слеша и больше - отдавать HTTP 404.
Немного поправить:
RewriteCond %{REQUEST_URI} //
Хм... вот и ни фига :) Апач самодеятельность устраивает.
Тогда так точно работает:
RewriteCond %{THE_REQUEST} //
RewriteRule . [R=404,L]
Не помогает.
Кстати, при этом чтобы страницы открывались как обычно, только статус им 404.
И да, есть такой код для ? в урлах:
может к нему можно дозапилить два слеша?
---------- Добавлено 21.05.2014 в 21:59 ----------
;12870040]Тогда так точно работает:
RewriteCond %{THE_REQUEST} //
RewriteRule . [R=404,L]
для такого вида, да:
site.ru/razdel//
для остальных не работает.
Если нужно, чтобы страницы при этом открывались как обычно, то тогда только последний вариант, который вы написали.
Допилить так
if (strpos($_SERVER['REQUEST_URI'],'?')!==false||strpos($_SERVER['REQUEST_URI'],'//')!==false) {
И да, есть такой код для ? в урлах:
if (strpos($_SERVER['REQUEST_URI'],'?' ) !== false or strpos($_SERVER['REQUEST_URI'],'//' ) !== false) {
header('HTTP/1.1 404 Not Found');
header('Status: 404 Not Found');
..............
[umka], дани мапов, это то что нужно, спасибо.
/ru/forum/comment/12861747
siv1987, обошлись без редиректа.
Добавьте флаг F, будет без редиректа, или R=404 для 404 ответа