Apacheサーバーのルートディレクトリにある単一のファイルindex.py
にバックアップするフォルダーにリクエストをリダイレクトしようとしています。これまでのところ、何も機能していません。これが私の.htaccessです:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{HTTP_REFERER} !index\.py
RewriteRule . index.py [L]
</IfModule>
これでも、www.example.com/files/testfile.Zip
のようなURLをフィードしてダウンロードすることができます。 index.py
に戻る必要があります。 mod_rewrite.co
のhttpd.conf
行のコメントを解除しました。これはWindowsにあります。
これでも、
www.example.com/files/testfile.Zip
のようなURLをフィードしてダウンロードすることができます。
投稿したディレクティブは、ファイルシステム上の既存のファイルにマップするURLを明示的に除外します。そうです、/files/testfile.Zip
(物理ファイル)にアクセスしてダウンロードすることが許可されます。 (具体的には、RewriteRule
は存在しないファイルにのみ適用されます。)
ただし、投稿したディレクティブには、これが正しく機能していないことを示唆する他の問題があります...この.htaccessファイルはどこにありますか?
この.htaccessファイルがドキュメントルートにある場合、サブディレクトリ内のファイルのリクエストだけでなく、すべてのリクエストに一致します。
.htaccessファイルがサブディレクトリにある場合、書き換えが成功すると、ドキュメントルートではなく、そのサブディレクトリのindex.py
に書き換えられます。
内部的に書き換えるall特定のサブディレクトリのリクエストをドキュメントルートのindex.py
に送信し、次の手順を試してください。そのサブディレクトリ内の.htaccessファイル:
RewriteEngine On
RewriteRule ^ /index.py [L]
PDATE: .htaccessファイルがまだ有効になっていない場合は、有効にする必要があります... AllowOverride All
をサーバー構成に含める必要があります(All
は次のように置き換えることができます) FileInfo
後ですべて)が必要ない場合。 Options +FollowSymLinks
は、サーバー構成の<Directory>
セクション、または.htaccessファイル自体のいずれかに配置する必要があります。