web-dev-qa-db-ja.com

リンクをnode / nidからPathauto URLに変換しますか?

Pathautoを使用してURLを適切に設定しているので、将来的にパスを変更したい場合があります。一部のページでは、他のノードに手動で並べます。

問題は、Nice URLをコーディングした場合、将来Pathauto設定を変更するとリンクが壊れることです。 node /(node id)にリンクすると、リンクは常に機能しますが、SEOがアンカーテキストにキーワードを持たないのは悪いことです。

NIDでコーディングする方法はありますか?常に機能しますが、ページにニースURLが表示されますか?

6
Evanss

Splatが述べたように、Googleがnode/FOOおよびpretty/pathが同一のコンテンツを指しているのを見ないようにするグローバルリダイレクトモジュールを確認します。ただし、エンジンがページコンテンツをスキャンし、pretty/pathがHTML内に表示されるようにしたい場合は、引き続きパスをハードコーディングするか、nidに基づいてエイリアスパスを返す関数を作成できます。

_function make_my_path($nid) {
  $pretty_path=drupal_get_path_alias('node/' . $nid);
  return $pretty_path;
}
_

次に、それをテンプレート(またはdrupal_get_path_alias()を直接)で使用するか、関数 l() を使用します。パスとして 'node/FOO'が渡された場合、エイリアスパスが設定されていればそれが返されます。 (明示的に指示しない限り、 url() を参照してください。)

したがって、たとえば、print l('Hello World','node/23');は_<a href="/pretty/path/to/node/23">Hello World</a>_を返す必要があります。

8
Jimajamma

CKEditorを使用している場合は、 CKEditor Link モジュールを使用する必要があります。挿入するタイトルによってコンテンツを検索できます。Drupalの場合、リンクは/ node/[ID]として保存されます。次に、テキストフィルター(各テキスト形式に対して有効にする必要があります)使用されている)は、レンダリングされたページでそのURLを現在のパスエイリアスに置き換えます。

3
matthewv789

Global Redirect モジュールを探していると思います。これにより、node /xにリンクするたびに、リンクをたどるすべてのユーザーがそのノードのクリーンなURLにリダイレクトされます。

2
splatio