Как я могу перенаправить запросы с Rails на поддомен PHP?

StackOverflow https://stackoverflow.com/questions/2100970

Вопрос

У меня есть сайт, скажем, example.com, написанный на PHP.Я конвертирую его в Rails, но есть выпуски за три года (например, выпуски журналов), которые я не хочу обновлять.К счастью, похоже, я выбрал выгодный формат URL, т.е.все вопросы начинаются с двух цифр, затем в большинстве случаев имя файла

example.com/00/имя-автора/index.php
example.com/19/имя-автора.php

Я хочу перенаправить через 301 все запросы к этим файлам php на

archive.example.com

И сделайте сайт example.com верхнего уровня сайтом Rails, на котором будут публиковаться последние выпуски.~/20/имя автора

Субдомен находится на Dreamhost, а верхний уровень перейдет к Heroku.(Так что это не часть вопроса.) Спасибо.

Это было полезно?

Решение 2

ActionController::Routing::Routes.draw do |map|

  map.connect '20/:name', :controller => :twenty, :action => :show
  map.resources :twenty, :as => '20', :only => [:index, :show] 

  map.connect ':url', :controller => :archive, :action => :show,
                     :requirements => { :url => /(([0-1]){1}([0-9]){1})(.*)/ }

  map.root :controller => :pages, :action => :cover  

  map.connect ':controller/:action/:id'
  map.connect ':controller/:action/:id.:format'
end

Для любого запроса, поступающего с домена/00 на домен/19, я перенаправляюсь в контроллере

redirect_to "http://archive.example.com/#{params[:url]}", :status => 301

Другие советы

Этот метод является самым простым и имеет дополнительный бонус в виде отправки заголовка 301.Это действительно хорошо для улучшения вашего SEO-рейтинга!!!

<?php 
$uri = $_SERVER['REQUEST_URI']; // Gets the user's current URI
$redirect = array("/00/author-name/index.php", "/19/author-name.php"); //Define your 301 redirect uri

// Here's the meet and greet of your problem:
if (in_array($uri, $redirect)) {
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: archive.example.com");
}
?>

Обязательно используйте этот код в самом начале вашего скрипта или начальной загрузки.

С помощью этого метода вы не только перенаправляете свою аудиторию, но и в то же время уведомляете Google (или любую другую поисковую систему) об изменении.Это позволит Google мгновенно обновить свой индекс.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top