Писать на форуме DIAFAN.CMS могут только зарегистрированные пользователи. Войдите или зарегистрируйтесь.

Форум Сайт на DIAFAN.CMS Вопросы от новичков 301-редирект (со слешем и без, с www)


Анатолий (stensss) 19 августа 2011 г.

Здравствуйте! Вопрос по 301-редиректу. Как прописать редирект "без завершающего слеша" на "завершающий слеш". Если сайт лежит (cms) в папке site.ru/site/? Также, что нужно изменить в:

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

, чтобы редирект вел на "без www". Заранее спасибо!

Петр (peter66) 2819 августа 2011 г.

Код
/forum/show175/#856
Спасибо сказали: IvanAlterov (IvanAlterov)

Анатолий (stensss) 19 августа 2011 г.

Спасибо! Но с редиректом на "со слешем" и "без www" не получается (

Виталий (DIAFAN.CMS) 63429 августа 2011 г.

Необходимо в файле .htaccess прописать следующее:

#убираем слэш в конце
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]

#добавляем слэш в конце
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]


(c) Андрей Уваров

Виталий (DIAFAN.CMS) 63406 октября 2011 г.

Ну а чтобы сайт без www вел на www надо раскомментировать в .htaccess две строки
# RewriteCond %{HTTP_HOST} !^www.
# RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]

Дмитрий (sait52ru) 26 декабря 2011 г.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.сайт-52.рф$
RewriteRule ^(.*)$ http://сайт-52.рф/ [R=301,L]

Не работает!
Ввожу www.сайт-52.рф и у меня так и остается этот УРЛ

Виталий (DIAFAN.CMS) 63426 декабря 2011 г.

Что-то я не понял... Что-что Вы вводите? Дословно?
Цитата
RewriteCond %{HTTP_HOST} ^www.сайт-52.рф$
???
А зачем???

Дмитрий (sait52ru) 26 декабря 2011 г.

а как нужно? мне без www нужно

Валерий Викторович (Sherrlok) 14604 февраля 2013 г.

В заначке был вариант (с www, на без www):
RewriteCond %{HTTP_HOST} ^www.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

Вроде работает и на diafan

Валерий Викторович (Sherrlok) 14604 февраля 2013 г.

Ему нужно было редиректить на адрес без "ввв". Мне нужно то же самое, как правильно сделать чтобы с адреса с "www" редиректило на адрес без "www"?

Артур (keen_) 04 февраля 2013 г., редакция 04 февраля 2013 г.

Валерий, у меня такой htaccess и редиректится с ввв на без ввв:

Код
Options -Indexes

Options +FollowSymLinks

DirectoryIndex index.php index.html

ErrorDocument 404 /404.php

AddDefaultCharset utf-8

Показать весь код
AddType image/x-icon .ico

RewriteCond %{REQUEST_URI} /+[^.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
RewriteRule ^index.php$ http://site.ru/ [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.html HTTP/
RewriteRule ^index.html$ http://site.ru/ [R=301,L]

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^site.ru [NC]
RewriteRule (.*) http://site.ru/$1 [R=301,L]
RewriteRule ^(.*)sitemap.xml$ index.php?rewrite=sitemap.xml [QSA]
RewriteRule ^(.*)/$ index.php?rewrite=$1 [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?rewrite=$1 [QSA]
RewriteRule ^index.php/(.*)$ index.php?rewrite=index.php/$1 [QSA]
</IfModule>

<IfModule mod_headers.c>
Header append Cache-Control "no-store, no-cache, must-revalidate"
</IfModule>

Антон (Аносов) 10 марта 2012 г.

#добавляем слэш в конце
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

добавил, но почему-то не работает!

Дмитрий (sait52ru) 26 декабря 2011 г.

Должно быть так?

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.
RewriteRule (.*) http://%{HTTP_HOST}/$1 [R=301,L]

Антон (Аносов) 28 июня 2012 г.

Без www со слешем на конце

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]
#RewriteCond %{HTTP_HOST} !^www.
#RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteRule ^(.*)sitemap.xml$ index.php?rewrite=sitemap.xml [QSA]
RewriteRule ^(.*)/$ index.php?rewrite=$1 [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?rewrite=$1 [QSA]

У меня работает, однако есть маленькие сомнения кое в чем ))

Данил (chikara) 01 января 2013 г.

хм ставил редирект со страницы со слэшем на стр без слэша.
Итог:

Есть страница сайт.ru/страница/

Когда я делаю редирект на страницу сайт.ru/страница

То вместо этого (сайт.ru/страница)
я вижу http://сайт.ru/index.php?rewrite=index.php/&rewrite=старница

Вопрос: как сделать чистый урл вида сайт.ru/страница?

И с Новым Годом всех! :)

Сергей (universe) 7320 февраля 2013 г.

Аналогичная проблема... - никак не могу заставить работать приведенный выше код, чтобы редирект был с site.ru/страница/ на site.ru/страница

Александр Биг Эпл (ba5) 8312 января 2013 г.

Если добавляю

Код


#добавляем слэш в конце
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]


код вставляю между

Код

<IfModule mod_rewrite.c>


что происходит: / добавляется, но стили перестали подгружаться и главная страница перестала работать

Сейчас очень надо для продвижения.

может у кого есть рабочий файл htacssess где идет 301 редирект с без www на www. (он кстати работает (спасибо разработчикам)) и чтобы в конце пути добавлялся / без вского мусора и двойного слэша //

мусор это типа

Код
чтобы при редиректе со страницы
www.site.ru/contacts

не было такого

www.site.ru/contacts/?www.site.ru/contact



буду весьма благодарен и наеврно не я один

Владимир (Chemist) 224 марта 2013 г.

Еще актуально? Были у меня танцы с бубнами, хотя не знаю, подойдет ли Вам мой вариант.

Евгений (mbytez) 2324 марта 2013 г.

Публикуйте, может кому и пригодится.

Станислав (kytyzov) 426 марта 2014 г.

Может кто поделиться рабочим вариантом редиректа страниц со слешем на страницы без слеша + со страниц с www на без www.

Вариант:
#убираем слэш в конце
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]

убирает слэш, но:
"Когда идет POST запрос на сохранение на адрес site.ru/site/save3/ по правилу идет редирект на site.ru/site/save3 и теряются все POST данные."

Тех. поддержка написала:
В административной части надо этот редирект исключить. То есть редирект должен распространятся на все ссылки кроме тех, что начинаются с admin.

Горопашный Степан (stepanych) 3924 сентября 2015 г.

Код
RewriteCond %{REQUEST_URI} !^/admin/.*$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]
Спасибо сказали: Станислав (kytyzov)

Александр (Forward90) 22 июля 2016 г.

Здравствуйте!
Не получается прописать 301 редирект с главной на внутренний раздел сайта.
Как это можно сделать на Diafan?

P.S. Стандартные конструкции не работают. Исходный код файла .htaccess:

Options -Indexes
php_value allow_url_fopen On

Options +FollowSymLinks

DirectoryIndex index.php index.html

ErrorDocument 404 /404.php

AddDefaultCharset utf-8

<IfModule mod_rewrite.c>
RewriteEngine on

# раскомментируйте строку ниже, если на Вашем хостинге установщик выдает ошибку 500 Internal Server Error
# измените / на /sub/ при установке в подпапку http://site.ru/sub/
# RewriteBase /

# расcкомментируйте строки ниже, если хотите чтобы сайт был всегда с www,
# т.е. постоянный редирект с http://site.ru/ на http://www.site.ru/
# RewriteCond %{HTTP_HOST} !^www.
# RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{HTTP:Authorization} !^$
RewriteCond %{REQUEST_URI} ^/shop/1c/.*
RewriteRule ^(.*)$ shop/1c/?auth=%{HTTP:Authorization}&%{QUERY_STRING}

RewriteRule ^(.*)sitemap.xml$ index.php?rewrite=sitemap.xml [QSA]
RewriteRule ^(&*)(.*)/$ index.php?rewrite=$2 [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(&*)(.*)$ index.php?rewrite=$2 [QSA]
RewriteRule ^index.php/(.*)$ index.php?rewrite=index.php/$1 [QSA]

# If-Modified-Since (if php is not installed as cgi then comment lines below)
RewriteRule .* - [E=HTTP_IF_MODIFIED_SINCE:%{HTTP:If-Modified-Since}]
RewriteRule .* - [E=HTTP_IF_NONE_MATCH:%{HTTP:If-None-Match}]
</IfModule>

<IfModule mod_headers.c>
<FilesMatch ".(flv|woff|woff2|eot|svg|otf|ttf|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$">
Header set Cache-Control "max-age=864000"
</FilesMatch>
</IfModule>
php_value allow_url_fopen On

Aleksey (lehabarc) 2222 июля 2016 г.

посмотрите, сработает ли 301 редирект, если прописать его в Дополнительных настройках страницы.

Александр (Forward90) 22 июля 2016 г.

CMS установлена и привязана к разделу на сайте.
Главная страница без привязки к CMS, там сейчас по сути ничего нет (она в разработке).

Александр (capitan) 9322 июля 2016 г.

Можно на той странице на которую должно редиректиться можно поставить в настройках страницы редирект на эту страницу /index.php

Александр (Forward90) 23 июля 2016 г.

Не понял, как это будет технически выглядеть..

Александр (Forward90) 23 июля 2016 г.

Получилось путем добавления следующего кода в файл .htaccess:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule ^$ http://www.site.ru/baza-znanij-seocategoriya/vnutryak/ [R=301,L]

Петр (peter66) 2810 марта 2017 г.

Интересует почему если в настройках чпу оканчивается на /
Все страницы корректно формируют адреса site.ru/onas/
кроме: site.ru/index.html и site.ru/index.php тут слеш не подставляется ?
Если самому набрать со слешом site.ru/index.php/ то ошибка 404
Далее, если в настройках чпу оканчивается ставим пусто, то страницы site.ru/index.php/ и site.ru/index.html/ перекидывает без слеша на site.ru/index.html и site.ru/index.php
Кто что думает? Ошибка или нет?


Виталий (DIAFAN.CMS) 63410 марта 2017 г.

index.php и index.html же не ЧПУ

Алексей (emirgem) 119 мая 2017 г.

Здравствуйте.
Такой вопрос все мучает (нигде про это не могу найти).
Правила редиректов на со слешем и без слеша действуют только на на все "второстепенные" страницы сайта? К главной странице сайта site.ru/ она не применима?
Главная всегда имеет вид со слешем site.ru/ (даже если редиректы на без слеша)?

Валерий Викторович (Sherrlok) 14619 мая 2017 г.

да, т.к. корень сайта - /

Владимир (german3w) 8819 мая 2017 г.

Если у Вас ЧПУ, заканчивается на "/", то да, но может быть и ".html"
И Канонический тег, тоже тогда должен стоять с "/"