専用ボックスに別々のドキュメントルートを指す別々のドメインがあります
このドキュメントルートの下にあるサブフォルダftp-uploadへのFTPアクセスを許可したいと思います。
適切なFTP構成はこの質問の一部ではありません
許可された人がファイルをdocument_root/ftp-uploadにアップロードする場合、このファイルには、domain.com / ftp-upload/fileではなくdomain.com/fileからアクセスできる必要があります。
.htaccessファイルはドキュメントルートにあります
私はいくつかのことを試しましたが、うまくいかないようです。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
## check if the file exists in subfolder
## ...and if found, stop and display it
RewriteCond %{DOCUMENT_ROOT}/ftp-upload/$1 -f [OR]
RewriteCond %{DOCUMENT_ROOT}/ftp-upload/$1 -d
RewriteCond $1 !^$
RewriteRule (.*) %{DOCUMENT_ROOT}/ftp-upload/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|images|robots\.txt|css|assets|ftp-upload)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
私も試しました
RewriteCond %{DOCUMENT_ROOT}/ftp-upload/${REQUEST_FILENAME} -f
と
RewriteCond %{DOCUMENT_ROOT}/ftp-upload%{REQUEST_URI} -f
これは進行中の作業であるため、これは最終的な解決策にはなりませんが、この機能は多くの要望があります。そして、可能であれば、ドキュメントルートへのアクセスを許可したくありません。
更新:必要なときに、機能するように見えます...
domain.com/test.txt(ftp-uploadディレクトリにのみ存在します)と入力すると、リクエストはdomain.com/index.php/test.txtに送信され、ホームページが表示されます。
domain.com/ftp-upload/と入力すると、test.txtを含むディレクトリリストが表示されます。
test.txtをクリックすると、ファイルの内容が表示されます(これは「動作します!」)。次にdomain.com/test.txtと入力すると、ファイルの内容が再び表示されます...
私の頭が爆発した...何かアイデアはありますか?
別の方法で解決しましたここでの回答は私のサーバーでは機能しませんでした。
私が構築したCMSには、別のユーザーグループ「SEO最適化」とアップロードセクションがあります。そのセクションで、ユーザーはファイルをアップロードする割り当てられた場所を選択できます。ウェブサイトindex.php(controller / router)は、アップロードフォルダーに存在する場合、要求されたファイルを提供します。サーバーがファンキーに動作していたため、.htaccessの編集はありません。