URLに日本語を含むトピックは、URLが完全に一致しない場合、リダイレクトされない

@Falco さんと Discourse チームの方々に、修正をいただきありがとうございます :rose:

スラッグ生成を encoded に変更したところ、スラッグを再構築する必要もなく、404 エラーが発生するトピックの問題が解決しました。

ただし、カテゴリが見つからない という問題には依然として直面しています。 本番環境で混乱を招かないよう、ステージング環境の Discourse で試行錯誤しました :grin:

問題の説明

  1. スラッグ生成を ascii に戻した場合:

カテゴリは正常に動作し、生成された URL も問題ありません(アラビア語が期待通りに表示されます):

https://discourse.coretabs.net/c/%D8%A7%D9%84%D8%A3%D8%B3%D8%A6%D9%84%D8%A9-%D9%88%D8%A7%D9%84%D8%A7%D8%B3%D8%AA%D9%81%D8%B3%D8%A7%D8%B1%D8%A7%D8%AA

しかし、トピックの生成された URL は英語のままです(タイトルは実際にはアラビア語ですが):

https://discourse.coretabs.net/t/5-mktbat-baythwn-mfydt-lmsharye-telym-alalt/2930/5
  1. スラッグ生成を encoded に変更した場合:

カテゴリは動作しません(「おっと!そのページは存在しないか、非公開です」と表示されます)が、生成された URL は問題ありません(アラビア語が期待通りに表示されます):

https://discourse.coretabs.net/c/%D8%B9%D8%A7%D9%85

トピックは正常に動作し、アラビア語の URL が期待通りに生成されます:

https://discourse.coretabs.net/t/5-%D9%85%D9%83%D8%AA%D8%A8%D8%A7%D8%AA-%D8%A8%D8%A7%D9%8A%D8%AB%D9%88%D9%86-%D9%85%D9%81%D9%8A%D8%AF%D8%A9-%D9%84%D9%85%D8%B4%D8%A7%D8%B1%D9%8A%D8%B9-%D8%AA%D8%B9%D9%84%D9%8A%D9%85-%D8%A7%D9%84%D8%A2%D9%84%D8%A9/2930/5

解決策

  1. スラッグ生成設定を ascii に変更
  2. 各カテゴリページからカテゴリのスラッグを英語に変更
  3. スラッグ生成設定を encoded に変更
  4. これで、カテゴリのスラッグを任意の言語に変更できるようになります
「いいね!」 5