Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как 301 корневой сайт в новую папку, но разрешить новый сайт в корне

Автор вопроса: ChrisОтветов: 2

Хорошо, позвольте мне посмотреть, смогу ли я объяснить это легко

У меня есть форум, который был размещен как моя домашняя страница на www.mysite.com соответственно. Он хорошо проиндексирован, и я не хотел бы потерять какой-либо рейтинг.

Сегодня я переместил весь корневой сайт из корневого домена в www.mysite.com/forum, чтобы освободить место для нашей новой системы CMS, которая теперь будет домашней страницей. (Это сделано для того, чтобы помочь новым пользователям и легко направлять посетителей в наш новый магазин)

В настоящее время я использую это в своем файле htaccess.

    RewriteEngine on

RewriteCond $1 !^Home
RewriteCond %{HTTP_HOST} ^mysite.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.mysite.com$
RewriteRule ^(.*)$ "http\:\/\/www\.mysite\.com\/forum\/$1" [R=301,L]

Как видите, это позаботится о переадресации, но при этом позволит мне получить доступ к cms, расположенному в /home.

Вот вопрос на миллион долларов:

Есть ли способ разместить CMS в корневом домене, сохраняя при этом перенаправление всех старых ссылок форума? Я ценю вашу помощь и надеюсь, что я правильно объяснил :)

exceptionredirectdirectorynew-operatorforum

Ответы

Ответ 1 · Gilbert Le Blanc

Это займет довольно много работы.

Ваш HTTP-сервер не будет знать разницу между http://www.mysite.com/ (старая ссылка на форум) и http://www.mysite.com/ (новая ссылка CMS).

Однако, и это немаловажно, вы можете перенаправить все http://www.mysite.com/forum-link на http://www.mysite.com/forum/forum-link. Вероятно, вам придется написать RewriteRule для каждого уникального forum-link, который у вас есть.

Лучшей возможностью было бы разместить новые страницы CMS по адресу http://www.mysite.com/cms и перенаправить туда http://www.mysite.com.

Ответ 2 · Pavel Strakhov

  1. Установите перенаправление на /forum/* для всех запросов, кроме /*?no_redirect.
  2. Напишите обработчик ошибки 404 для каталога /forum. Он должен перенаправить пользователя на /[requested_url]?no_redirect.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы