0

次の URL を書き換えたい:

  • ノード/追加
  • ノード/編集など

- コンテンツ/追加 - コンテンツ/編集

私は事前入力モデルも使用しており、次の URL を書き換えたいと考えています。

  • node/add/single-gallery-image?edit[field_gallery_node_reference][0][nid]=48

このようなものに:

  • コンテンツ/追加/画像?n=48

これは可能ですか?その場合、これには Drupal モジュールが必要ですか、それとも htaccess ファイルを使用する必要がありますか?

4

4 に答える 4

5

pathauto モジュールを使用すると、URL のエイリアスを作成できます。多くのルールを設定することができ、かなりうまくいくはずです。それが事前人口モデルとどの程度うまく統合されているかはわかりません。しかし、残りは非常に簡単なはずです。

于 2009-08-18T12:44:52.400 に答える
1

ここにはいくつかのオプションがあります。

1) pathauto モジュールを使用して、パスの名前を変更できます。その後、これらのパスはサーバー レベルで完全に使用可能になりますが、古い node/add および node/%/edit パスは引き続き存在します。

2) node.module の hook_menu 実装から適切なコードをコピーして、hook_menu 経由でパスを実装するカスタム モジュールを作成できます。これにより、古い node/add パスと node/%/edit パスもサイトに残りますが、hook_menu_alter を使用してメニュー配列から適切なパスを設定解除できます。

3) Olav が提案した ように、 custom_url_rewrite_inboundおよびcustom_url_rewrite_outbound関数を使用できます。

正直なところ、最初のオプションの方が高速であり、予期しないバグが発生しないため、一般的には最初のオプションの方が適しています。方法 2 は確実に目的を変更しますが、Drupal が依存するいくつかのかなり基本的なパスも変更する必要があります。あなたの変更。方法 3 あまり詳しくありませんが、1 のようにパスを書き換えて、よりリアルにすることができるように見えますが、そこにはパフォーマンスの問題が潜んでいる可能性があり、また、かなりの量のデバッグを行う必要があります。

于 2009-08-25T02:03:53.710 に答える
0

関数custom_url_rewrite_inboundcustom_url_rewrite_outboundを見てください。これらはモジュールではなく、低レベルで drupal の URL マッピングと連携する settings.php に配置された関数です。

于 2009-08-18T21:59:42.990 に答える
0

hook_menuを使用してこれらのコールバックを実装するカスタム モジュールを作成することもできますが、これはこれらのアクション用の追加の URL を作成するだけで、古いものは削除されません。

于 2009-08-18T10:02:10.373 に答える