私は約500ページ(ノード、分類ページ、およびいくつかのビュー)を持つサイトをすべてヘブライ語で作成しています。
私は言うことからすべてのパスを作りたいです:
/node/example1
/taxonomy/categories/term1
/taxonomy/tags/tag1
/views/view1
に
/he/node/example1
/he/taxonomy/categories/term1
/he/taxonomy/tags/tag1
/he/views/view1
このサイトをサブサイト(サブドメインを持つ)にする最初の段階として、すべてのページを対象にしたいと考えています。
これは、貢献モジュールなしでDrupal 8で可能ですか?つまり、たとえばPathautoをインストールせずに?
これは、Drupalルートディレクトリにある.htaccessファイルに書き込まれる書き換えルールです。
RewriteEngine on RewriteCond %{REQUEST_URI} !/he RewriteRule ^(.*) http://www.domain.com/he%{REQUEST_URI} [L,R=301]
それはあなたにとって理にかなっています。
言語ごとに異なるサブドメインが必要な場合は、Drupalがサブドメインから言語コードを検出でき、URLプレフィックスを追加する必要がないはずです。サブドメインhe.example.com
をセットアップし、他の言語と言語選択ダイアログをexample.com
に追加するまで、メインサイトからのリクエストをhe
サブドメインにリダイレクトすることによる最初のステップ(サブなし) -ドメイン)。
こんにちは!私は次の解決策を見ることができます:
ソリューション1:ノードパスの変更
/he/
に設定できます。/he
プレフィックスを追加します。ソリューション2:.htaccess
.htaccess
を使用して、/he/*
URLを/*
として解釈するようにすべてのURLを書き換えます。しかし、これは他のパスにもプレフィックスを適用する可能性があります-ノードに対してのみこれを行うのは、既存のURLによっては難しい場合があります。
RewriteEngine on
RewriteCond %{REQUEST_URI} !/he
RewriteRule ^(.*) http://www.domain.com/he%{REQUEST_URI} [L,R=301]
注: Ashish Deynapの回答からコピーされたコードの抜粋。
ただし、次の理由により、.htaccess
リダイレクトは可能な限り避けた方がよいと聞きました。
.htaccess
は、Drupalバージョンで更新される可能性があります。.htaccess
のルールは、すべてのリクエストに対して評価されます!ルールが多いほど、サーバーがそれらの評価に費やす時間が長くなります。それが役に立てば幸い。
これを言語接頭辞に固有のものにしているので、コアモジュール「Language」を使用することをお勧めします。これは、(a)コアであり、(b)管理が容易であるためです。以下を試してください:
幸運を!
注:既存のURLは引き続き有効ですが、ナビゲーションへの数回のクリックでURLの先頭に「彼」を付ける必要があります。
要件はサブサイト(サブドメインを含む)の場合です。サブドメインを「彼」としてウェブサイトを設定することをお勧めします。マルチサイトを作成するには、リンクの最初の回答に記載されている手順に従ってください Drupal 8:サブディレクトリ内のマルチサイトが機能していません
お役に立てば幸いです。
これを行うには、Drupalルートディレクトリにある.htaccess
ファイルに rewrite rule と書き込みます。ルートディレクトリです。 this ans を確認してください。