drupal 8 composerおよび次のスクリプトを使用して、
composer create-project drupal-composer/drupal-project:8.x-dev my_site_name_dir --stability dev --no-interaction
composerを使用することにしました。これは新しい方法のようで、すべての依存関係を取得するためです。
しかし、構造は異なり、インストールするdrupalをサーバーにダウンロードしてインストールします。それが私の問題です。
私は共有ホスティングを使用しており、以前はcomposerすべてがフォルダpublic_htmlに配置されています。しかしcomposerを使用すると、public = html内にweb =というフォルダがあり、drupal自体(または、少なくとも私にはそのように思われます)したがって、www.mydomain.comのようなURLを持つ代わりに、www.mydomain.com/webでサイトにアクセスします。
私の質問は、URLから/ webを非表示にする方法を教えてください。または、composer経由でインストールするときに何かしますか?
フロントページから/ webを非表示にする一時的なソリューションを実行しました。以下を含むpublic_htmlに新しい.htaccessを作成する必要がありました。
RewriteRule ^ $ web/$ 1 [L]
RewriteCond%{REQUEST_FILENAME}!-d
RewriteCond%{REQUEST_FILENAME}!-f
RewriteRule ^(。*)$/$ 1 [L]
しかし、別のページをクリックするとすぐに/ webが再び表示されます。
ヒントやもちろん答えは大歓迎です。
ありがとう/トビアス
私と私の同僚は、うまくいく解決策を見つけました。
Public_htmlフォルダーに、次の行を含む.htacessファイルを作成しました。
RewriteRule ^$ web/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ web/$1 [L]
〜user/public_html/webにある.htaccessファイルを編集しました。
# Modify the RewriteBase if you are using Drupal in a subdirectory or in a
# VirtualDocumentRoot and the rewrite rules are not working properly.
# For example if your site is at http://example.com/drupal uncomment and
# modify the following line:
RewriteBase /web
〜/ user/public_html/web/sites/default/settings.phpファイルの下部にこのコードを追加しました。
if (isset($GLOBALS['request']) and
'/web/index.php' === $GLOBALS['request']->server->get('SCRIPT_NAME')) {
$GLOBALS['request']->server->set('SCRIPT_NAME', '/index.php');
}
trusted_Host_patterns
の設定も変更しました。
# will allow the site to run off of all variants of example.com and
# example.org, with all the sub-domains included.
$settings['trusted_Host_patterns'] = array(
'^DOMAIN.com$',
'^.+.DOMAIN.com$',
'^DOMAIN.com/web$',
'^.+.DOMAIN.com/web$',
);
私が言ったように、これはおそらくそれを行う正しい方法ではありませんが、私たちにとってはうまくいきました。
現在、同様のボートに乗っています。私たちは専用のホスティングを行っており、サイトの管理方法としてDrupal 8サイトと作曲家の開発を開始する予定です。
別のアプローチをとり、ディレクトリを作成し、その中にコア、モジュール、テーマファイルを追加しました。次に、それらのファイルとpublic_htmlフォルダーの間にシンボリックリンクを作成しました。それは正常に動作するようですが、あなたのように、私はベストプラクティスが何であるかわかりません。
参考:シンボリックリンクの作成方法は次のとおりです。
それは私たちにとってうまくいくように見えました。
編集:私はこれを書いた直後に記事に出くわしました。 docrootからファイルを移動すると、サイトのセキュリティが強化されると書かれています。したがって、シンボリックリンクを使用して行った処理は、より優れたオプションと見なされる場合があります。
あなたがmysite.com/public
にいて、index.php
またはdrupal rootがmysite.com/public
の直下にある必要があります。
次に実行します:
create-project drupal-composer/drupal-project:8.x-dev my_site_name_dir --stability dev --no-interaction --no-install
my_site_name_dir
に移動し、*
と.*
を含むすべてをmysite.com
の下に移動します
次に、composer.json
の下のmysite.com
を開き、installer-paths
の "web"を "public
"に置き換えます。
composer install
内でmysite.com
を実行します。それが動作します。