2009-05-15 2 views
0

Как вы делаете это так, чтобы www.site.com/123 или www.site.com/123/some-headline www.site.com/123/anything-at-all привел пользователей к тому же месту, которое www.site.com/123? Я думаю, что маршрутизация в Ruby on Rails может это сделать. Но кроме этого, какие другие методы могут это сделать. может ли это сделать только Apache?, как вы это сделаете, чтобы www.site.com/123 или www.site.com/123/some-headline оба приведут пользователей к тому же месту, что и www.site.com/123?

ответ

1

Сочетание mod_rewrite Apache и некоторые регулярное выражение должно быть все, что вам нужно.

mod_rewrite

2

Использование Mod Rewrite:

RewriteEngine ON 
RewriteRule ^([0-9]+)/*$ /$1 [R=301,L] 

Использование routes.rb

map.connect ':my_id/:headline', :controller => 'controller_name', 
      :action => 'action_name', :my_id => /[0-9]+/ 
0

Хотя это не отвечает именно ваш вопрос, большинство сайтов используют рельсы слизняка после тире, а чем косая черта, вот так: www.site.com/123-my-headline.

Вы делаете это, создавая свой собственный метод to_params в модели.

Не нужно выполнять больше работы, потому что метод find автоматически вернет страницу # 123, так как метод ruby ​​to_i вернет целое число, которое запустит строку и игнорирует все символы, начиная с первого нечислового символа.

0

По рельсам 1.2.6 вы можете добавить оба маршрута:

map.connect ':id', :controller=>:post,:action=>:show 
map.connect ':id/:title', :controller=>:post,:action=>:show 

RESTful вещь может варьироваться

Надеются, что это помогает вам

 Смежные вопросы

  • Нет связанных вопросов^_^