Редирект без слеша php

Содержание
  1. 301 редирект для страниц без слеша и со слешем на конце
  2. Убираем слеш в конце
  3. Со слешем на конце
  4. Комментарии по теме “ 301 редирект для страниц без слеша и со слешем на конце ”
  5. 301 редирект (переадресация) через .htaccess – на все случаи жизни
  6. Советы
  7. Второй способ сделать редирект – это переадресация через php
  8. Правила переадресаций
  9. 1. 301 редирект с одной страницы на другую
  10. 2. 301 редирект с www на без www (главное зеркало – домен без www)
  11. 3. 301 редирект с без www на www (главное зеркало – домен с www)
  12. 4. 301 редирект со страниц со слешем на без слеша (весь сайт)
  13. 5. 301 редирект со страниц без слеша на слеш (часто в CMS системах устанавливается автоматически)
  14. 6. Один (а не два последовательных!) 301 редирект на без www и с слешем на конце адреса страницы
  15. 7. Один (а не два последовательных!) 301 редирект на c www и со слешем на конце адреса страницы
  16. 8. Один (а не два последовательных!) 301 редирект на c www и без слеша на конце адреса страницы
  17. 9. Один (а не два последовательных!) 301 редирект на без www и без слеша на конце адреса страницы
  18. 10. 301 редирект только адреса site.ru/index.php (без GET параметров) на основное зеркало site.ru
  19. 11. 301 редирект всех адресов с index.php и GET параметрами на страницы только с GET параметрами (вырезать в url index.php)
  20. 12. 301 редирект для index.php, index.html или index.htm (например в Joomla), массовая склейка
  21. 13. 301 редирект url с GET параметрами (динамический URL) на статический
  22. 14. Все страницы одного домена на главную страницу другого домена
  23. 15. Каждая страница одного домена на такой же адрес другого url
  24. 16. Редирект с протокола http на https.
  25. 17. Редирект с протокола https на http.
  26. Может быть полезно:
  27. FAQ

301 редирект для страниц без слеша и со слешем на конце

Страница может открываться без слеша и со слешем на конце, что приводит к дублированию (одна и та же страница отрывается по двум адресам). Для решения этой проблемы — необходимо определить один вариант (посмотреть как проиндексирован сайт поисковыми системами) и сделать 301 редирект через файл .htaccess

Убираем слеш в конце

Со слешем на конце

RewriteCond % !-f
RewriteCond % !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]
Такая проблема встречается довольно часто и исправить эту ошибку критически необходимо.

Комментарии по теме “ 301 редирект для страниц без слеша и со слешем на конце ”

Добрый день! Сделал все, как вы указали. Однако видимо с кешем проблема, то перенаправляет, то нет страницы. Никак не могу понять, работает 301 на исходную страницу без слеша или нет.

Читайте также:  HTML DOM Window parent

Кидайте ссылку, посмотрим. Либо проверьте в Яндекс.Вебмастере ответ сервера (либо в любом другом онлайн сервисе) по каждой из ссылок.

А если у меня на сайте страница без слеша показывает 404, то надо сделать так же или необязательно? Ведь по идее контент не дублируется, но с другой стороны, стерев «лишний» символ мы получаем 404.

Олеся, значит у Вас все хорошо. Адреса страниц должны открываться либо со слешем, либо без него. В вашем случае нет дублирования страниц, так как без слеша страница не существует (ошибка 404), делать редиректы нет необходимости.

Ага уж! Что за вредные советы? Большинство внешних ссылок люди проставляют без слеша (а некоторые площадки сами его убирают) и все эти ссылки, в случае Олеси, окажутся 404 (читай – сайт теряет вес, причем оба). Редирект обязателен.

Подскажите, у меня есть ряд страниц порядка 20-30, которые нужно перенести с без слеша на слеш.
Как это сделать для отдельных страниц (массово нельзя ибо такой функционал, что часть страниц долна быть со слешем а другая без — к сожалению)

RewriteRule old-page.html /new-page.html [R=301,L]
где:
old-page.html — урл старой страницы
/new-page.html — урл новой страницы
Один урл — одна строка.

У меня так сработало: # Редирект домена с WWW на домен без WWW
RewriteCond % ^www\.(.*)$
RewriteRule ^(.*)$ https://%1/$1 [R=301,L] # Убираем лишние слеши на конце URL
RewriteCond % !-d
RewriteCond % ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L] Спасибо Владимиру. На других блогах готовые решения не помогли.

Как сделать редирект для конкретной страницы описано тут https://ya-knyazev.ru/301-redirekt/
Если кратко, то вот так: RewriteRule old-page.html /new-page.html [R=301,L]

Подскажите пожалуйста. У меня стоит редирект со слешем в конце. Но почему-то редирект идет на http а не на https версию страницы. Т.е. получается двойной редирект.

Спасибо за рецепт. Искал, как сделать / в конце, т.к. все урлы построены по такому принципу на сайте, но из-за отсутствия редиректа дублируются и без слэша. Но возникла другая проблема — после использования данного правила — перестали отрабатываться файлы robots.txt и sitemap.xml и все, что не /url/
Как для них прописать исключения? Спасибо

Приветствую!
Безусловно этим способом можно перебрасывать, но есть ли рабочее решение под opencart? Там если так сделать, то при входе в админку будет бесконечный редирект со слеш на без и обратно =(((
Если не получится найти решение, буду делать через canonical

Подскажите, при создании сайта разработчики должны прописывать эти условия или потом за эти ошибки дополнительно платить им чтобы исправили? Говорят в Битрикс нет такого условия, чтобы со страницы без слеша отправлять на страницу с слешем, платите, сделаем)

Читайте также:  Жир питона как хранить

что то не получается так слеш убрать в конце( множественные, с вопросами всё удалось выпилить, а домен/ на домен без слеша ну никак, что только не пробовал вставлять. может не в том месте пишу?
и RewriteEngine On надо перед этим кодом или нет? может поэтому не работает что я с реврайт конд сразу пишу?( но остальные то нормально редиректят без RewriteEngine On сверху

Источник

301 редирект (переадресация) через .htaccess – на все случаи жизни

301 редирект

Три важных совета и семнадцать конкретных примеров установки 301 переадресации страниц через htaccess!

Советы

Располагайте переадресации страниц в файле от частных к более глобальным (сверху вниз). Например: простая переадресация двух страниц стоит выше, чем глобальное правило редиректов с www на без www. Избегайте последовательных редиректов (двух, трех и т.д.). Правила должны быть настроены так, что при возникновении редиректа он должен перенаправлять пользователя (робота) только один (!) раз. Каждое лишнее переадресация – это секунды драгоценного времени отдачи страницы, это нагрузка на сервер, это нечеткие команды для поисковых роботов. Не забывайте, что многие браузеры кешируют (запоминают редиректы), поэтому проверять переадресации лучше на сайте – http://www.bertal.ru. В файле обязательно должна присутствовать команда:

Второй способ сделать редирект – это переадресация через php

Правила переадресаций

1. 301 редирект с одной страницы на другую

Redirect 301 /test-1/ http://site.ru/test-2/
RewriteCond % ^/test/$ RewriteRule ^.*$ http://site.ru/new-test/? [R=301,L]

2. 301 редирект с www на без www (главное зеркало – домен без www)

RewriteCond % ^www\.(.*)$ RewriteRule ^(.*)$ http://%1/$1 [L,R=301]

3. 301 редирект с без www на www (главное зеркало – домен с www)

RewriteCond % ^([^www].*)$ RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]

4. 301 редирект со страниц со слешем на без слеша (весь сайт)

RewriteCond % !\? RewriteCond % !\& RewriteCond % !\= RewriteCond % !\. RewriteCond % ![^\/]$ RewriteRule ^(.*)\/$ /$1 [R=301,L]

5. 301 редирект со страниц без слеша на слеш (часто в CMS системах устанавливается автоматически)

RewriteCond % !\? RewriteCond % !\& RewriteCond % !\= RewriteCond % !\. RewriteCond % !\/$ RewriteRule ^(.*[^\/])$ /$1/ [R=301,L]

6. Один (а не два последовательных!) 301 редирект на без www и с слешем на конце адреса страницы

RewriteCond % !\? RewriteCond % !\& RewriteCond % !\= RewriteCond % !\. RewriteCond % !\/$ RewriteCond % ^www\.(.*)$ RewriteRule ^(.*)$ http://%1/$1/ [L,R=301] RewriteCond % !\? RewriteCond % !\& RewriteCond % !\= RewriteCond % !\. RewriteCond % ![^\/]$ RewriteCond % ^www\.(.*)$ RewriteRule ^(.*)$ http://%1/$1 [L,R=301] RewriteCond % !\? RewriteCond % !\& RewriteCond % !\= RewriteCond % !\. RewriteCond % !\/$ RewriteCond % ^([^www].*)$ RewriteRule ^(.*)$ http://%1/$1/ [L,R=301]

7. Один (а не два последовательных!) 301 редирект на c www и со слешем на конце адреса страницы

RewriteCond % !\? RewriteCond % !\& RewriteCond % !\= RewriteCond % !\. RewriteCond % !\/$ RewriteCond % ^www\.(.*)$ RewriteRule ^(.*)$ http://www.%1/$1/ [L,R=301] RewriteCond % !\? RewriteCond % !\& RewriteCond % !\= RewriteCond % !\. RewriteCond % !\/$ RewriteCond % ^([^www].*)$ RewriteRule ^(.*)$ http://www.%1/$1/ [L,R=301] RewriteCond % !\? RewriteCond % !\& RewriteCond % !\= RewriteCond % !\. RewriteCond % ![^\/]$ RewriteCond % ^([^www].*)$ RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]

8. Один (а не два последовательных!) 301 редирект на c www и без слеша на конце адреса страницы

RewriteCond % ^\/$ RewriteCond % ^([^www].*)$ RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301] RewriteCond % !\? RewriteCond % !\& RewriteCond % !\= RewriteCond % !\. RewriteCond % \/$ RewriteCond % ^www\.(.*)$ RewriteRule ^(.*)\/$ http://www.%1/$1 [L,R=301] RewriteCond % !\? RewriteCond % !\& RewriteCond % !\= RewriteCond % !\. RewriteCond % !\/$ RewriteCond % ^([^www].*)$ RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301] RewriteCond % !\? RewriteCond % !\& RewriteCond % !\= RewriteCond % !\. RewriteCond % \/$ RewriteCond % ^([^www].*)$ RewriteRule ^(.*)\/$ http://www.%1/$1 [L,R=301]

9. Один (а не два последовательных!) 301 редирект на без www и без слеша на конце адреса страницы

RewriteCond % ^\/$ RewriteCond % ^www\.(.*)$ RewriteRule ^(.*)$ http://%1/$1 [L,R=301] RewriteCond % !\? RewriteCond % !\& RewriteCond % !\= RewriteCond % !\. RewriteCond % \/$ RewriteCond % ^www\.(.*)$ RewriteRule ^(.*)\/$ http://%1/$1 [L,R=301] RewriteCond % !\? RewriteCond % !\& RewriteCond % !\= RewriteCond % !\. RewriteCond % !\/$ RewriteCond % ^www\.(.*)$ RewriteRule ^(.*)$ http://%1/$1 [L,R=301] RewriteCond % !\? RewriteCond % !\& RewriteCond % !\= RewriteCond % !\. RewriteCond % \/$ RewriteCond % ^([^www].*)$ RewriteRule ^(.*)\/$ http://%1/$1 [L,R=301]

10. 301 редирект только адреса site.ru/index.php (без GET параметров) на основное зеркало site.ru

RewriteCond % /index.php RewriteCond % ^\z RewriteRule ^(.*)$ http://site.ru/? [R=301,L]

11. 301 редирект всех адресов с index.php и GET параметрами на страницы только с GET параметрами (вырезать в url index.php)

RewriteCond % /index.php RewriteRule ^(.*)$ http://site.ru/ [R=301,L]

12. 301 редирект для index.php, index.html или index.htm (например в Joomla), массовая склейка

RewriteCond % ^[A-Z]\ /index\.(php|html|htm)\ HTTP/ RewriteRule ^(.*)index\.(php|html|htm)$ http://site.ru/$1 [R=301,L]

13. 301 редирект url с GET параметрами (динамический URL) на статический

RewriteCond % ^id=229 RewriteRule ^.*$ /supermodel/? [R=301,L]
RewriteCond % /test/ RewriteCond % ^id=229 RewriteRule ^.*$ /supermodel/? [R=301,L]

14. Все страницы одного домена на главную страницу другого домена

RewriteCond % (.*) RewriteRule ^(.*)$ http://site.ru/ [L,R=301]

15. Каждая страница одного домена на такой же адрес другого url

RewriteCond % (.*) RewriteRule ^(.*)$ http://site.ru/$1 [L,R=301]

16. Редирект с протокола http на https.

RewriteCond % !=on RewriteRule ^(.*)$ https://%/$1 [R=301,L]
RewriteCond % off RewriteCond % !https RewriteRule ^(.*)$ https://%% [L,R=301]
RewriteCond % !^443$ RewriteRule .* https://%% [R,L]
RewriteCond % '"scheme":"http"' # Without Cloudflare: # RewriteCond % off RewriteRule ^ https://www.example.com% [NE,R=301,L]

17. Редирект с протокола https на http.

RewriteCond % =on RewriteRule ^(.*)$ http://%/$1 [R=301,L]

Может быть полезно:

FAQ

Проверять в браузере опасно, т.к. они часто кешируют ответ. Лучше всего воспользоваться Яндекс.Вебмастером или bertal.ru.

Читайте также:  Demo RSS Feed

Обратиться в поддержку хостинга, где расположен ваш сайт, возможно, у вас отключен файл .htaccess или какая-то не самая стандартная конфигурация сервера.

Источник

Оцените статью