"Nie railsowy" routing

Witajcie. Wielkimi krokami zbliżam się do zamienienia własnego cmsa (php) na aplikację rails. Nurtuje mnie problem URLi. Oczywiście te z railsów są o wiele lepsze od tych, które posiadam obecnie, ale nie chcę momentalnie stracić tych obecnych, gdyż Google może to źle znieść (ok. 30tys zaindeksowanych podstron). Czy da się zmusić routing w rails (znając railsy tak :stuck_out_tongue: ) do obsłużenia /news/zobacz/2345 w dodatkowy sposob np. link “to-jest-link-cokolwiek-string-2345n.html” . Tak miałem ustawione urle w .htaccess, wcześniej wspomniany link w rzeczywistosci “szedł” pod news.php?id=2345

Pozdrawiam

no zawsze możesz daj link sobie jaki chcesz a w min redirect_to 301 Move Pernamently na nowy link. Google to zniesie. Bo trzymanie pod dwoma linkami mija się z celem też przez google, to zniesie też ale nie lubi. 301 to twoja odpowiedź według mnie.

Ale robić to dla 50 tys linków, nie starczy jeden 301 dla wszystkich nie trafionych linków. Czyli jak ktoś wchodzi na link jaki nie istnieje dostaje 301 do strony głównej?

Najlepszy sposób to tak jak wspomniał Gotar: jeden URL kanoniczny (zwracający 200 OK + content) oraz redirect (301) dla pozostałych.

Przy czym nie rób tego na poziomie routes.rb tylko za pomocą prostego Rack middleware: http://www.winniecloud.com/documentation/rewriting_urls

Zostawiasz .htaccess (tylko musisz wtedy aplikację postawić na apache+passenger), zamieniasz rewrite na redirect 301 (permanent) do /news/2345.

A coś takiego nie zadziała:

RewriteRule ^[a-z0-9\-]+,n([0-9]+)\.html$ news/$1 [L]

domain.com/przykladowy-news,n333.html —> domain.com/news/33