Qualche giorno fa, ho impostato SiteSetting.slug_generation_method su encoded, cercando di avviare un canale di chat (ma senza abilitare affatto il plugin di chat). Ho visto che l’URL era brutto in locale cinese, quindi ho reimpostato SiteSetting.slug_generation_method su none.
Tuttavia, il sito sta ancora generando slug nei nuovi argomenti (non tutti, ma alcuni). Non ho idea di cosa ci sia di sbagliato. Ho provato a eseguire Topic.update_all(slug: "topic") o Topic.update_all(slug: nil) per aggiornare lo slug, ma alcuni slug degli argomenti sono ancora titoli codificati.
1 Mi Piace
Un altro problema è che non riesco ad accedere a un argomento con uno slug codificato, ottenendo ERR_TOO_MANY_REDIRECTS. Questo tipo di argomenti con slug codificati vengono generati dopo aver impostato SiteSetting.slug_generation_method su none.
Il log mostra
Started GET "/t/%E6%88%91%E4%B9%9F%E8%83%BD%E6%89%BE%E5%88%B0%E5%B1%9E%E4%BA%8E%E6%88%91%E7%9A%84%E9%98%B3%E5%85%89%E5%A4%A7%E7%94%B7%E5%AD%A9%E5%90%97/112562/39" for 10.182.185.76 at 2022-11-23 19:35:09 +0800
Rendered text template (Duration: 0.0ms | Allocations: 1)
Processing by TopicsController#show as HTML
Parameters: {"slug"=>"我也能找到属于我的阳光大男孩吗", "topic_id"=>"112562", "post_number"=>"39"}
Redirected to https://my-domain/t/%E8%BF%98%E6%9C%89%E4%B8%8D%E5%88%B040%E5%A4%A9%EF%BC%8C2022%E5%B9%B4%E5%B0%B1%E7%BB%93%E6%9D%9F%E4%BA%86%EF%BC%8C%E8%AF%B7%E7%94%A8%E4%B8%80%E4%B8%AA%E5%AD%97%E6%88%96%E8%80%85%E8%AF%8D%E8%AF%AD%E6%9D%A5%E8%AF%84%E4%BB%B7%E5%AE%83%E5%90%A7/112489
Completed 301 Moved Permanently in 176ms (ActiveRecord: 0.0ms | Allocations: 19880)
Ho letto il codice, forse slugs_do_not_match restituisce true, dato che %E6%88%91%E4%B9%9F%E8%83%BD%E6%89%BE%E5%88%B0%E5%B1%9E%E4%BA%8E%E6%88%91%E7%9A%84%E9%98%B3%E5%85%89%E5%A4%A7%E7%94%B7%E5%AD%A9%E5%90%97 != 我也能找到属于我的阳光大男孩吗. E questo causa un reindirizzamento.
def slugs_do_not_match
if SiteSetting.slug_generation_method != "encoded"
params[:slug] && @topic_view.topic.slug != params[:slug]
else
params[:slug] && CGI.unescape(@topic_view.topic.slug) != params[:slug]
end
end
Quindi il problema è lo stesso, cioè, perché il mio sito genera uno slug codificato quando SiteSetting.slug_generation_method è già impostato su none.