TECH / Серверы и сайты 2 мин чтения

:/0 в конце ссылки — ошибка 404: как отрезать часть URL редиректом 301 (.htaccess и Nginx)

Antonio Автор NEMCD
Опубликовано 14.07.2016 · Обновлено 10.11.2026 · 2 мин
3

Давно заметил: к обычным ссылкам на сайт откуда-то добавляются символы :/0, и получается адрес вида

https://nemcd.com/2013/12/v-excel-propali-listy-kak-vklyuchit/:/0

Такая страница отдаёт ошибку 404. Хорошо, что у меня стоит плагин SEO Ultimate — он и сообщил об этих ошибках. Пришло время решить проблему.

Редирект 301 — как отрезать :/0 от ссылки

Откуда берётся :/0, я глубоко не выяснял. Правильнее, конечно, найти корень проблемы, но быстрый поиск по коду сайта ничего не дал, поэтому я решил просто сделать редирект.

Решение: 301-редирект на нормальный адрес

Отрезаем ненужную добавку и делаем постоянный (301) редирект на правильную ссылку. Так и посетитель попадает на нужную страницу, и поисковик понимает, что адрес с :/0 — тот же самый, что и без него.

Раньше я писал про похожую проблему — индексацию ссылок с ?utm_source: там свой «хвост» к ссылке добавлял Твиттер. Ситуация другая, но решение похожее.

Apache: правило в .htaccess

Добавляем строки в корневой .htaccess сайта:

RewriteCond %{REQUEST_URI} ^(.*)\:\/0
RewriteRule ^(.*)\:\/0$ $1 [R=301,L]

Для WordPress в итоге получается так:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{REQUEST_URI} ^(.*)\:\/0
RewriteRule ^(.*)\:\/0$ $1 [R=301,L]

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Наше правило должно стоять до правил WordPress, иначе запрос уйдёт в index.php и редирект не сработает. Если в .htaccess есть и другие строки — объединяйте аккуратно.

Nginx: правило в конфиге сайта

Если сайт работает на Nginx + PHP-FPM, .htaccess не читается. Добавьте в блок server { … } вашего сайта строку и перезагрузите Nginx (nginx -t, затем nginx -s reload):

rewrite ^(.*):/0$ $1 permanent;

Проверка

Откройте любую ссылку с :/0 на конце — браузер должен перейти на нормальный адрес. Код ответа удобно посмотреть командой:

URL=https://example.com/2013/12/lyubaya-stranica
curl -I "$URL/:/0"

В ответе должно быть 301 Moved Permanently и строка Location с адресом без :/0. Обязательно проверьте, что весь сайт работает как раньше: нет новых ошибок 404 и нет бесконечного редиректа.

Ещё похожие заметки:

Комментарии 3

Avatar
Antonio автор
11 Апр 2017, 22:39

Класс, прошел год и опять пригодился совет =)

Avatar
Аноним
27 Май 2019, 17:32

8)

Avatar
Antonio автор
26 Окт 2019, 13:11

Прошло 3 года и теперь нужно сделать редирект в
Nginx + PHP FPM
растем =)

Оставить комментарий