我的rails 4 app中有一个Page模型。它有一个:永久链接属性,当有人进入“mysite.com/pages/page-name”时,控制器会找到带有“page-name”的页面作为永久链接,然后显示视图。
pages_controller.rb:
def show
@page = Page.find_by_permalink!(params[:id])
end
网站启动几个月后,我想更改某个页面的永久链接,但我不想丢失所有传入的链接。我想我会这样做。
首先我将add_colum:new_permalink添加到Page模型中。然后如果这个:new_permalink属性是零或空的,它会在控制器中拉出一个新的页面,如下所示:
def show
@page = Page.find_by_permalink!(params[:id])
if !@page.new_permalink.blank?
@page = Page.find_by_permalink!(@page.new_permalink)
end
end
这样可行,但浏览器中的网址仍显示旧网址。我想这可能不是那么糟糕,但我想我希望它能真正转发到新页面。也许,而不是“new_permalink”它应该是一个新的网址,实际上是一个重定向?你最好的解决方案是什么?我可以将其改为301重定向吗?
答案 0 :(得分:1)
是的,你应该使用301重定向,这样用户和搜索引擎都会将浏览器发送到正确的位置。
Boundary: \r\n------WebKitFormBoundary32hCBG8zkGMBpxqL\r\n
Encapsulated multipart part:
Content-Disposition: form-data; name="description"\r\n
Data (21 bytes)
Data: 0d0a5465737420616e6420747261636520636f6d6d
Length: 21