How to remove a URL's trailing slash in a Rails app? (in a SEO view)

孤者浪人 提交于 2019-12-05 08:54:30

I'd use Apache's mod_rewrite. Try this:

RewriteEngine on
RewriteRule ^(.+)/$ $1 [R=301,L]

EDIT: Added R=301. I'm guessing there is an SEO advantage to that vs. the default 302.

You could use http://github.com/jtrupiano/rack-rewrite for url rewriting to be independent from differences in web-servers.

Example usage in rails application:

config.gem 'rack-rewrite', '~> 1.0.0'
require 'rack/rewrite'
config.middleware.insert_before(Rack::Lock, Rack::Rewrite) do
  r301 %r{(.+)/$}, '$1'
end

You can't get a redirect using routes.rb. I suppose you could build a controller that just issues redirects and point all URLs ending in '/' to it, but that seems needlessly complicated. Instead, I'd use mod_rewrite in a .htaccess file:

RewriteRule ^(.+)/$ $1 [R=301,L]
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!