Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

Дизайн и модификация Invision Community

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

Редирект с корня в подпапку

Коллеги, перенес форум с корня домена в подпапку, т.е. с site.ru в site/forum/

 

Пытаюсь в корне разместить .htaccess c содержимым:

Options +FollowSymLinks
RewriteEngine on
RewriteRule /(.*)$ http://site.ru/forum/$1 [L,R=301]

 

При входе на site.ru - тишина, ничего не происходит, но если напрямую набираю http://site.ru/forum/

браузер выдает ошибку:

Неверное перенаправление на странице

Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.

Эта проблема может возникать при отключении или запрещении принятия кук.

 

Что можно предпринять в такой ситуации?

 

p.s. До переноса в настройках форумах кукиссы не были прописаны. Пробовал с ними и без. Ошибка та же самая. :(

Рекомендованные сообщения

В корень

 

RewriteEngine on
RewriteCond %{REQUEST_URI} !/forum/
RewriteRule ^(.*)$ http://site.ru/forum/$1 [L,R=301]

  • Автор

Сработало! Благодарю Вас! :rolleyes:

  • 6 месяцев спустя...

Ребят, а наоборот как прописать - пренес из папки site.ru/forum на поддомен forum.site.ru?

В корень домена (site/)

 

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

  • 1 месяц спустя...
  • Автор

Возникла еще ситуация, нужно перенести статьи из подкатегории в категорию и сделать редирект на новый адрес.

 

Допустим, статья была по адресу:

http://site.ru/kategori/podkategori/name.html

Нужно редиректить на:

http://site.ru/kategori/name.html

 

Пытаюсь редиректить каждую статью поштучно (без модреврайта):

RedirectPermanent /kategori/podkategori/name.html /kategori/name.html

Но при этом:

1. нужно, чтобы копия статьи лежала на старом месте.

2. в браузере адрес получается совсем кривой:

http://site.ru/kategori/name.html?lang=&link=kategori/podkategori/name.html

т.е. влезает хвост:

?lang=&link=kategori/podkategori/name.html

 

Если делать с помощью модреврайта:

RewriteRule ^http://site.ru/kategori/podkategori/name.html$ ^http://site.ru/kategori/name.html$ [R=301,L]

все анологично предыдущему варианту: требуется копия на строам адресе, и снова "хвост" в адресе.

 

Можно как-то сделать почеловечнее? :o

 

т.е., чтобы не было копии (иначе она попадает в sitemap.xml..), а также чтобы редиректило на адрес без "хвоста".

А еще бы желательно не прописывать редирект каждой статьи, а сразу касалось всех статей, предже распложенных в подкатегори, из которой поднимаем в верхнюю картегорию, где находилась подкатегория.

запись нужно добавить сразу после RewriteEngine on (или RewriteBase)

редирект всех записей из подкатегории в родительскую категорию.

 

RewriteRule ^(kategori)/podkategori/(.+)$ /$1/$2? [R=301,L]

  • Автор

Благодарю за оперативность. сейчас попробую.

 

запись RewriteBase в .htaccess нужна? А то в моем варианте .htaccess ее нет.

Если она есть то добавляете после нее, если нету то после r-engine. Присутствие r-base не обязательна.

  • Автор

В общем, результат тот же, т.е. требуется копия на прежнем месте, и опять с хвостом.

Но уже лучше намного - не нужно прописывать для каждой статьи. Спасибо!

 

Кстати, вот содержимое .htaccess, оно от разработчика скрипта, всего лишь вставил одну рекомендованную строчку после RewriteEngine on. Может что-то тут конфликтует?

 

DirectoryIndex index.php
Options -Indexes
ErrorDocument 404 /404.php

php_flag magic_quotes_gpc off
php_flag magic_quotes_runtime off
php_flag register_globals off
php_flag allow_call_time_pass_reference on
php_value max_execution_time 240
php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value display_errors on
php_value memory_limit 36M

RewriteEngine on
RewriteRule ^(moda)/modnye-tendenchii/(.+)$ /$1/$2? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule  ^((rus|ukr|blr|de|frn|eng)[/$]){0,1}([^?]+)?$  index.php?lang=$2&link=$3 [NC,QSA,L]

Странно, "хвоста" не должно быть. Насчет копии на прежнем месте не совсем понятно. Вы же ставите редирект со старых ссылок на новые. Кстати, а RedirectMatch удалили из файла? И нажмите пару раз F5.

  • Автор

В файле больше ничего нет.

 

Чистка кеша изменила ситуацию - "хвост" пропал. Но наличие копии на старом месте обязательно, иначе 404...

Так как может быть копии на старом месте если стоит редирект? Если он работает то код ответа будет 301, 404 там нету.

  • Автор

Вероятно это особенности ABO.CMS.

Вариант:

RewriteRule ^http://site.ru/kategori/podkategori/name.html$ ^http://site.ru/kategori/name.html$ [R=301,L]

они рекомендовали, но предупредили что нужно оставить копию на старом месте.

 

Вернее они сказали, что нужно создать копию статьи по новому адресу, а старую оставить. Иначе будет ошибка 404..

Похоже что это каприз самого движка. :(

Что-то они вам не то насоветовали. Во первых синтаксис у rewriteRule неправильный, во вторых не понимаю зачем нужны статьи по старому адресу. Вы переносите их на новый адрес, со старых ссылок ставите редирект на новые, и не важно останется на старом адресе что-то или нет. Если стоит редирект там по определению не может быть 404 ответа.

  • Автор

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

 

Покажу завтра им нашу переписку, посмотрим что ответят.

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.