We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 26268
    • 2 Posts
    Был сайт на статичных html-файлах, переделал на ModX. Теперь для переноса PR использую редирект 301 в .htaccess.
    Пример:
    Redirect 301 /service.html http://new-site/bosch

    Редирект работает, но при обращении в браузере по адресу http://old-site/service.html, происходит редирект с некоторыми добавлениями к адресу:
    http://new-site/bosch?q=service.html

    Как сделать так, чтобы редирект не добавлял в адрес "?q=<старый_адрес_страницы>" ?
      • 26268
      • 2 Posts
      Товарищи! Неужели никто не сталкивался с такой проблемой?
        • 785
        • 2,113 Posts
        Это результат обработки расположенных в файле правил.

        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

        Чтобы они не выполнялись, надо или придумать условие RewriteCond, запрещающее обрабатывать какие-то адреса, или вместо Redirect 301 использовать RewriteRule с параметром L. Хотя, вообще-то они должны выполняться, чтобы MODx правильно работал, поэтому, скорее всего, надо просто расположить Redirect 301 выше этих правил. Но точно сказать я не могу – надо пробовать.
          Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
          Статьи о MODx, регулярно новые публикации
          • 27473
          • 11 Posts
          Тоже столкнулся с этой проблемой. Получилось у кого составить нужное правило?
            • 34306
            • 1 Posts
            Мне нужно было с несуществующей страницы сделать 301 редирект на существующую
            Нашел вот так:
            RewriteBase /
            RewriteRule ^old-page.html$ new-page.html [R=301,NC,L]
            

            а потом уже
            # The Friendly URLs part
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
            

              • 48670
              • 1 Posts
              Спасибо!

              Quote from: alter36 at May 12, 2011, 11:50 AM
              Мне нужно было с несуществующей страницы сделать 301 редирект на существующую
              Нашел вот так:
              RewriteBase /
              RewriteRule ^old-page.html$ new-page.html [R=301,NC,L]
              

              а потом уже
              # The Friendly URLs part
              RewriteCond %{REQUEST_FILENAME} !-f
              RewriteCond %{REQUEST_FILENAME} !-d
              RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
              

                • 49187
                • 1 Posts
                Была аналогичная проблема. Несколько дней потрачено на поиск решения, были перепробованы все вышеописанные способы, в том числе установлен пакет Redirector. Спас только один вариант:
                RewriteCond %{QUERY_STRING} ^(.*)old_path.html
                RewriteRule ^(.*)$ site.ex/new_path.html? [R=301,L]
                Спасибо Resistant с сайта www.drupal.ru/node/21929

                В моем случае в ht.access были добавлены 2 строки:
                RewriteCond %{QUERY_STRING} ^(.*)katalog-tovarov/vyibor-komplekta/po-czvetu/beloe
                RewriteRule ^(.*)$ satinoff.ru/katalog-tovarov/vyibor-postelnogo-belya-po-parametram/postelnoe-bele-beloe? [R=301,L]
                  • 50295
                  • 1 Posts
                  Сегодня столкнулся с такой проблемой, после редиректа к адресу добавлялось ?q=category и ?q=other. Решил проблему таким образом:
                  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

                  заменил на
                  RewriteRule ^(.*)(?<!category|other)$ index.php?q=$1 [L,QSA]
                    • 51154
                    • 1 Posts
                    Подниму старую тему. А как быть с внешним редиректом?