Как правильно прописать Redirect в htaccess

#1 21 июля 2016 в 13:36
Переношу сайт с Джумлы 1.5 на Инстант 2.

Осталось в htaccess правильно настроить Redirect.
==========================================
На Джумле было 6 разделов, которые имели вид:

sait.ru/nazvanie-razdela/blog

На Инстанте 2 эти разделы имеют вид:

sait.ru/board/nazvanie-razdela

ВОПРОС №1: Как правильно прописать редирект для этих шести разделов?
===========================================
На Джумле статьи, имели вид:

sait.ru/nazvanie-razdela/nazvanie-stati

На Инстанте 2 эти статьи имеют вид:

sait.ru/board/nazvanie-stati.html Т.е. все статьи находятся в board, а не в разных разделах

ВОПРОС №2: Как правильно прописать редирект для статей?
#2 21 июля 2016 в 14:03

На Инстанте 2 эти статьи имеют вид:

sait.ru/board/nazvanie-stati

Man

не забывайте
sait.ru/board/nazvanie-stati.html
#3 21 июля 2016 в 17:35
Что никто не знает? shock
#5 21 июля 2016 в 19:40

Гляньте может поможет

serhio
Благодарю за ссылку.

Просто я хочу ручками прописать редиректы. Мне так спокойнее будет.
#6 21 июля 2016 в 19:43
Добрый день. Попробуйте так:
Redirect 301 /nazvanie-razdela/nazvanie-stati sait.ru/board/nazvanie-stati.html
или
Redirect permanent /nazvanie-razdela/nazvanie-stati sait.ru/board/nazvanie-stati.html

Не забудьте включить модули mod_alias (для поддержки директив Redirect, RedirectPermanent и RedirectMatch) и/или mod_rewrite (для использования реврайта) в php.ini.
#7 21 июля 2016 в 19:47


Добрый день. Попробуйте так:
Redirect 301 /nazvanie-razdela/nazvanie-stati sait.ru/board/nazvanie-stati.html
или
Redirect permanent /nazvanie-razdela/nazvanie-stati sait.ru/board/nazvanie-stati.html

Не забудьте включить модули mod_alias (для поддержки директив Redirect, RedirectPermanent и RedirectMatch) и/или mod_rewrite (для использования реврайта) в php.ini.

Fuzler

Это для статей, я так понимаю. У меня более 5000 статей и каждую из них по одной прописывать?

А для разделов какой редирект сделать?

И как включить модули?
#8 21 июля 2016 в 20:24

Это для статей, я так понимаю. У меня более 5000 статей и каждую из них по одной прописывать?

Man
Это не является проблемой. Можете, используя тот же Notepad++ без проблем все сделать за пару минут.
Я бы советовал однозначно сделать редирект для каждой из ссылок. Срок жизни данного редиректа должен быть от 2 лет. Т.е. в течение этого времени его снимать не стоит.

А для разделов какой редирект сделать?

Man
RewriteRule ^(.*)nazvanie-razdela(.*)$ /board$1 [QSA,L,R=301,NC]
-это должно решить проблему редиректа как папки так и статей всех при условии что названия статей одинаковы.

И как включить модули?

Man
Options +FollowSymLinks
RewriteEngine on

Возможно в помощь будут генераторы редиректа: генератор 1, генератор 2
#9 21 июля 2016 в 20:38

Я бы советовал однозначно сделать редирект для каждой из ссылок.

Fuzler
А ничего, что в htaccess будет длинная портянка? Сайт из-за этого тормозить не будет?
#10 21 июля 2016 в 20:40

Options +FollowSymLinks
RewriteEngine on

Fuzler
Т.е. в php.ini в любом месте нужно вставить вот это?
Options +FollowSymLinks
RewriteEngine on
#11 21 июля 2016 в 20:45

А ничего, что в htaccess будет длинная портянка? Сайт из-за этого тормозить не будет?

Man
Ограничений по количеству и размеру я нигде не видел. Сайт из-за этого не тормозит. У меня был порядка 30kb.
#12 21 июля 2016 в 20:47

Ограничений по количеству и размеру я нигде не видел.

Fuzler
Посоветуйте как лучше выгрузить список всех url?
#13 21 июля 2016 в 20:53

Посоветуйте как лучше выгрузить список всех url?

Man
Самое простое — sitemap.xml
К сожалению, я только начинаю знакомиться с instantcms, поэтому лучшего решения вам не предложу.
#14 21 июля 2016 в 21:04
А для того, чтобы все эти перенаправления для статей и для разделов работали, конкретно в каких документах нужно сделать правки и какие? чтобы включить эти модули?
#15 21 июля 2016 в 21:13
Это в .htaccess:

# InstantCMS rewriting rules

# Initialization
AddDefaultCharset utf-8
Options -Indexes
Options +FollowSymLinks
RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} ^site\.com$ [NC]
RewriteRule ^(.*)$ www.site.com/$1 [R=301,L]

# rewriting rules from joomla to instant
RewriteRule ^(.*)nazvanie-razdela(.*)$ /board$1 [QSA,L,R=301,NC]

# Hide text files
RewriteRule ^.htaccess$ — [F]
RewriteRule ^credits.txt$ — [F]
RewriteRule ^readme.txt$ — [F]
RewriteRule ^license.(.*).txt$ — [F]

# Remove trailing slash from URLs
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [R=301,L]

# Sitemaps
RewriteRule ^sitemap(.*).xml$ /cache/static/sitemaps/sitemap$1.xml [L]

# Engine routing
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php [L]
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.