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

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем Monkeyman, 10 апр 2009.

Статус темы:
Закрыта.
  1. Monkeyman

    Monkeyman

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

    www.domain.com/index.php?showtopic=1

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

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

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

    alica

    Регистр.:
    28 июл 2008
    Сообщения:
    243
    Симпатии:
    76
    Попробуйте так:



    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^index.php?showtopic=(.*)$ /forum/index.php?showtopic=$1 [L,QSA]

     
  3. Monkeyman

    Monkeyman

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

    http://www.domain.com/index.php?showtopic=1078&mode=linear&view=findpost&p=27413

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

    http://www.domain.com/forum/index.php?showtopic=1078&mode=linear&view=findpost&p=27413

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

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

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

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

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

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

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

    Monkeyman

    Регистр.:
    26 ноя 2008
    Сообщения:
    198
    Симпатии:
    40
    Возможно, проблема в уже существующем коде. Выкладываю его на всеобщее обозрение - может, это что-то прояснит:

    Дело в том, что у жумлы тоже есть index.php, и она почему-то быстрее перехватывает его, обрабатывает и ругается, что нет параметра findpost. По крайней мере, такие мысли приходят в голову.
     
  5. andrnag

    andrnag

    Регистр.:
    26 мар 2008
    Сообщения:
    350
    Симпатии:
    125
    Включите предложенные строчки
    сразу после RewriteBase
     
Статус темы:
Закрыта.