301 поведение перенаправления в системе drupal


Я переношу старый сайт на более новый, который использует Drupal. В рамках этого я пытаюсь настроить 301 перенаправление на новые страницы, но получаю неожиданное поведение. Я добавил следующую строку в свой файл .htaccess:

redirect 301 /redirect.html http://www.example.com/newpage

К сожалению, происходит то, что я попадаю в:

http://www.example.com/newpage?q=redirect.html

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

Author: MrWhite, 2010-08-18

4 answers

Итак, после небольшого поиска я нашел ответ здесь. Он похож на danlefree, но немного отличается.

<IFModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /

    # custom redirects

    RewriteRule ^redirect\.html$ http://www.mysite.com/newpage [R=301,L]

    # end custom redirects

    ...
</IFModule>

Похоже, что эта работа выполнена.

 3
Author: Joe Corkery, 2010-08-18 04:33:22

Забудьте .htaccess. Использовать глобальное перенаправление . Это дает вам следующее:

  1. Проверяет текущий URL-адрес на наличие псевдонима и делает 301 перенаправление на него, если он не используется.
  2. Проверяет текущий URL на наличие завершающей косой черты, удаляет ее, если она присутствует, и повторяет проверку 1 с новым запросом.
  3. Проверяет доступ к URL-адресу. Если у пользователя нет доступа к пути, перенаправление не выполняется. Это помогает избежать раскрытия частных узлов с псевдонимами.

Это немного упрощает миграцию вашего веб-сайта и, вероятно, самое главное, упрощает поиск того, что именно перенаправляется и куда. (так как для этого есть пользовательский интерфейс)

Бонус ( представь, что здесь появляется клиппи)

Похоже, вы создаете что-то похожее на чистые URL-адреса. Я думаю, что вас может заинтересовать pathauto.

 2
Author: cgp, 2010-08-18 13:28:50

Другие ваши правила перезаписи мешают.

Вместо этого попробуйте выполнить следующее:

RewriteEngine on

RewriteRule ^/redirect\.html$ http://www.mysite.com/newpage [L,R=301]

# ... existing rewrites
 0
Author: danlefree, 2010-08-18 03:31:25

Для этой цели мы использовали модуль перенаправления пути . Он не может справиться со всеми мощными функциями, которые может Mod_rewrite, но он проделал для нас действительно хорошую работу по сохранению старых URL-адресов.

 0
Author: acrosman, 2010-08-18 19:08:59