Pathautoを使用しています。コンテンツの一部を削除したとき、そのURLエイリアスがまだ存在しないコンテンツ(node/xxx)にマッピングされていることに驚いた。
どうすればこのエイリアスとシステム名のマッピングを削除できますか自動的にノードが削除されたとき
編集:ノードが調整されたときにパスを変更したくないため、更新アクションを「何もしないでください。古いエイリアスはそのままにしてください」に設定しておきます。ただし、ノードが完全に削除された場合、パスを維持することは意味がありません。どういうわけか両方のオプションを持つことができますか?
あなたはhook_node_deleteを使うことができます:
function hook_node_delete($node){
// Delete alias.
$path = path_load(
array('source' => 'node/'.$node->nid)
);
path_delete($path['pid']);
}
ここで、またはノードでエイリアスを更新できます
/ admin/config/search/path
または、ここ全体を一括更新します
/ admin/config/search/path/update_bulk
ここで設定したエイリアスパターンの変更に基づく
/ admin/config/search/path/patterns
エイリアスが削除されなかったように見えるのは、一種のチェーンで別のエイリアスに転送しているためだと思います。 Drupalは、コンテンツの削除時にalaiseをクリーンアップします。簡単なテストを実行して、それが発生することを確認できます。ただし、alaiseをチェーンしている場合、最終的なalaisを削除し、他を残すようです。 「更新アクション」を更新すると、作成される追加のalaiseの数を最小限に抑えることができます。
ここに移動して、「更新アクション」というセクションを見つけます/ admin/config/search/path/settings
アレが変更されたときに何をするかを3つの選択肢から選択
また、「エイリアスが変更されたときにリダイレクトを取得するためにRedirectモジュールをインストールすることを検討する」というアドバイスにも基づいています。
これがansがベースから外れていないことを願っていますが、50万項目のサイトで同様の問題に直面し、クリーンアップは深刻な問題でした。がんばって!
パスエイリアスは、Admin> Configメニューのadmin/config/search/path/update_bulkで更新できます。