Перейти к публикации
View in the app

A better way to browse. Learn more.

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

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Опубликовано:

Коллеги, перенес форум с корня домена в подпапку, т.е. с 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 ответа.

Опубликовано:
  • Автор

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

 

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

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

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.