ベースを書き換えずにサブディレクトリから要求されたファイルをロードする方法

ベースを書き換えずにサブディレクトリから要求されたファイルをロードする方法

ルールを利用して.htaccess、ドメインとファイル パスの両方が基準に一致する場合にフロントエンド URL を変更せずにサブディレクトリ内からファイルを読み込もうとしています。

URLの例:

example.com/specificfile.xml

ファイル自体は、パブリック Web ルートではないサブディレクトリ内にあります。

/var/www/feeds/specificfile.xml

これを Google で検索すると、多くの結果が表示されますが、RewriteBaseそれは私が求めているものではありません。 1 つのファイルのみの「ベース ディレクトリを書き換え」、フロントエンド URL を保持する必要があります。

答え1

/var/wwwがドキュメント ルートであると仮定すると、/feeds/specificfile.xmlリクエスト時にサービスを提供するには/specificfile.xml、ルート ファイルで mod_rewrite を使用して次の操作を実行します.htaccess

RewriteRule ^specificfile\.xml$ feeds/$0 [L]

これを機能させるには、RewriteBaseをまったく設定しない (推奨) か、 に設定する必要がありますRewriteBase /

バック$0リファレンスは単に繰り返しを省くだけです。これは、一致するURLパス全体を参照します。RewriteRule パターンつまりspecificfile.xml

.htaccessファイルにmod_rewriteディレクティブが既にある場合は、順序は重要(例:外部/正規リダイレクトを最初に行う必要があります。)

関連情報