Frage

Um Inhalt Doppelarbeit zu vermeiden, möchte ich die Seiten meiner Website vermeiden zugänglich ist durch mehrere URLs (mit oder ohne Slash am Ende).

Derzeit sind die URLs

catalog/product/1

und

catalog/product/1/

führen zu der gleichen Seite. Mein Ziel ist es, dass die zweite URL zur ersten (Umleitung 301, natürlich) umleiten. Keine Seite von meiner Seite sollte mit einem Schrägstrich, mit Ausnahme meiner Homepage / offensichtlich zugänglich sein.

Was ist der beste Weg, dies zu tun? Mit .htaccess oder routes.rb? Wie würden Sie das tun?

NB: Ich bin mit Ruby-Entwicklung auf Rails 1.2.3

War es hilfreich?

Lösung

Ich würde verwenden Apache mod_rewrite . Versuchen Sie folgendes:

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

EDIT: Added R = 301. Ich vermute, es ist ein SEO Vorteil, dass im Vergleich zu den Standard-302.

Andere Tipps

könnten Sie verwenden http://github.com/jtrupiano/rack-rewrite url Umschreiben von Unterschieden in Web-Servern, unabhängig zu sein.

Beispiel für die Verwendung in Rails-Anwendung:

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