Как подставить /forum в старые ссылки?

Статус
В этой теме нельзя размещать новые ответы.

Monkeyman

Профессор
Регистрация
26 Ноя 2008
Сообщения
210
Реакции
47
Некоторое время назад мой сайт представлял собой обычный форум со ссылками вида:

Для просмотра ссылки Войди или Зарегистрируйся

После переезда форум переместился в каталог /forum и, соответственно, куча ссылок в поисковике стали битыми. Роботы на них лезут и не могут достучаться, что вполне естественно.

Можно ли как-то изменить эту ситуацию и перенаправлять роботов на нужный урл, подставляя им в него папку /forum?

Я не очень силен в .htaccess, но, как я понимаю, надо в нем прописать срочку RewriteRule. Вот только затрудняюсь с синтаксисом. Подскажите, пожалуйста, или направьте в нужную тему на форуме.
 
Некоторое время назад мой сайт представлял собой обычный форум со ссылками вида:

Для просмотра ссылки Войди или Зарегистрируйся

После переезда форум переместился в каталог /forum и, соответственно, куча ссылок в поисковике стали битыми. Роботы на них лезут и не могут достучаться, что вполне естественно.

Можно ли как-то изменить эту ситуацию и перенаправлять роботов на нужный урл, подставляя им в него папку /forum?

Я не очень силен в .htaccess, но, как я понимаю, надо в нем прописать срочку RewriteRule. Вот только затрудняюсь с синтаксисом. Подскажите, пожалуйста, или направьте в нужную тему на форуме.

Попробуйте так:

 
Поскольку первые 3 строчки у меня стоят уже, то нужна только последняя. Ее я и прописал, но чего-то не работает. Допустим, есть вот такой битый урл в гугле:

Для просмотра ссылки Войди или Зарегистрируйся

Если вставить после имени домена /forum, то все прекрасно заходит:

Для просмотра ссылки Войди или Зарегистрируйся

Прописываю указанную строчку в .htaccess и имею 2 случая:

1. Ничего не проиходит, хотя по идее должен попадать в тему.
2. Если убрать все, что после "showtopic=1078", то попадаешь тупо на главную страницу, хотя опять же должен попадать в тему.

P.S.: У меня на сайте стоит жумла - это она перехватывает ссылку и выдает страницу с ошибкой:

500 - Вид не найден [наименование, тип, префикс]: findpost,html,contentView

Что может быть не так?
И не лучше ли поставить перманентный редирект на правильную страницу, чтобы поисковик у себя еще кэш обновил?

P.S.: У меня на сайте стоит жумла - это она перехватывает ссылку и выдает страницу с ошибкой:

500 - Вид не найден [наименование, тип, префикс]: findpost,html,contentView
 
Возможно, проблема в уже существующем коде. Выкладываю его на всеобщее обозрение - может, это что-то прояснит:

AddHandler application/x-httpd-php5s .php

Options +FollowSymLinks

RewriteEngine On
RewriteBase /

RewriteRule ^index.php/(.*) http://www.domain.com/$1

RewriteCond %{HTTP_HOST} ^domain.com
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ Для просмотра ссылки Войди или Зарегистрируйся [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ Для просмотра ссылки Войди или Зарегистрируйся [R=301,L]

RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

Дело в том, что у жумлы тоже есть index.php, и она почему-то быстрее перехватывает его, обрабатывает и ругается, что нет параметра findpost. По крайней мере, такие мысли приходят в голову.
 
Включите предложенные строчки
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^index.php?showtopic=(.*)$ /forum/index.php?showtopic=$1 [L,QSA]
сразу после RewriteBase
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху