.htaccess を使用して、Web ルートのシンボリックリンクされたサブディレクトリにリダイレクトしますか?

.htaccess を使用して、Web ルートのシンボリックリンクされたサブディレクトリにリダイレクトしますか?

Envoyer.io を使用してコードをデプロイしようとしているのですが、いくつか問題が発生しています。

このユーティリティは 2 つのフォルダーを作成し、currentフォルダー内の最新リリースへのreleases.シンボリックリンクを作成します。currentreleases

したがって、ディレクトリ構造は次のようになります。

  • 公開_html
    • current - releases/{release_id} にシンボリックリンクされています
    • リリース
      • {リリースID}
        • 公共
        • (その他の内容)

すべてのリクエストを ディレクトリに送信する必要があるためcurrent/public、 ではなく、これを Web ルートにしますpublic_html

Webroot を に設定するという明白なオプションを試しましたpublic_html/current/publicが、次のエラーが発生します。Symbolic link not allowed or link target not accessible: /home/mysite/public_html/current

Options +FollowSymLinksファイル内でさまざまなバリエーションを試してみましたが.htaccess、うまくいきませんでした。共有ホストなので、Apache conf ファイルにアクセスできないのだと思います。

この件に関してご指導いただければ幸いです。

答え1

繰り返しになりますが、

.htaccessServerFaultでこれを使用して質問する人のほとんどは、.htaccessそもそもエンドユーザー向けのソリューションではないため、使用すべきではありません。管理者向け:

あなたがすべき.htaccessファイルの使用を完全に避けるhttpdのメインサーバ設定ファイルにアクセスできる場合。.htaccessファイルを使用するとApache httpサーバの速度が低下します。ファイルに含めることができるディレクティブは、.htaccessDirectoryブロックに設定する方が、同じ効果が得られ、パフォーマンスが向上するため、
より効果的です。アパッチマニュアル

使用できるようにするにはFollowSymlinksファイル内のディレクティブでは、.htaccessメインサーバー構成で設定によってそれを許可する必要があります。またはAllowOverride All 、少し緩い設定を使用する場合は、オプションを明示的に有効にする必要があります。AllowOverride Option=FollowSymlinksAuthConfigディレクティブは、、、またはのデフォルトのグループ化の一部ではないためFileInfoIndexesLimit

関連情報