一般的な方法は、変更されない一意の ID (この場合はユーザーと投稿) を含めてから、現在の/正規のバリアントに 301 リダイレクトすることです。
例
これは、たとえば Stack Overflow が行っていることです。
質問のタイトルを変更すると、ID ( 36463097
) は残り、スラッグは変わります。
https://stackoverflow.com/questions/36463097/handling-urls-that-change
https://stackoverflow.com/questions/36463097/handling-urls-that-might-change
ユーザー名を変更すると、ID ( 2961662
) は残り、スラッグは変わります。
https://stackoverflow.com/users/2961662/psidhu
https://stackoverflow.com/users/2961662/john-doe
これにより、同じユーザー名を持つユーザーを持つこともできます (許可したい場合):
http://example.com/23/john-doe
http://example.com/42/john-doe
欠点
これは最適なURL 設計ではありません:
/users/2961662/psidhu
ほど美しくない/users/psidhu
- そのような不可解な ID を持つ URL を覚えるのは難しいです。
- このような ID は意味がないため、理想的には URL の一部にはなりません。
別
すべての変更を追跡し、一度登録されたユーザー名をブロックします。したがって、私が として始めてjohn
から名前を に変更するとjohn-doe
、他の誰も登録できなくなりますjohn
。
これは電子メール アドレスの良い方法であり、ユーザーとの直接的なコミュニケーションを可能にするすべてのサービスの良い方法でもあると思います。ユーザーがそのユーザー名の以前の所有者宛てのメッセージを受け取った場合、それは深刻な問題です。他の誰かが以前に登録したためにユーザーがお気に入りのユーザー名を取得できない場合、せいぜい迷惑です。
したがって、ユーザーごとに以前のユーザー名を追跡し、投稿ごとに以前のタイトルを追跡してから、現在の/正規のものに 301 リダイレクトすることができます。