简体   繁体   中英

Make 301-redirects administratable by the user in Rails?

we are currently relaunching a bigger website from PHP (Magento with a quite exhaustive forum) into a Rails-app while keeping the forum.

During this undertaking we will migrate quite a lot of content to new URLs, which means we'll have to 301 redirect a lot of them.

Now we all know about Apache/NGINX-rewrites. I also found https://github.com/jtrupiano/rack-rewrite for RACK.

But is there a good way to make 301-redirects administratable by our users with Rails? (I'm basically looking for a GEM or RACK-app, where our users can log in, then see and edit the existing redirects).

Thanks for any help.

You could store all redirects in a model with attributes "from" and "to". Then, you can manage this redirects from your admin area as you want.

Then, in your ApplicationController, you can wrap your actions in a around filter as it says here :

around_filter :catch_not_found

private

def catch_not_found
  yield
rescue ActiveRecord::RecordNotFound
  redirect = Redirect.where(from: request.original_fullpath).first
  redirect_to "#{request.base_url}#{redirect.to}" if redirect
end

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM