Я пытаюсь перенаправить запросы в папку для резервного копирования в один файл, index.py
в моем корневом каталоге на моем сервере Apache. Пока ничего не работает. Вот мой .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>
Это все еще позволяет мне кормить его URL-адресами, например www.example.com/files/testfile.zip
и скачать. Необходимо вернуться к index.py
. Я раскомментировал mod_rewrite.co
линия в httpd.conf
. Это в винде.
Это все еще позволяет мне кормить его URL-адресами, например
www.example.com/files/testfile.zip
и скачать.
Опубликованные вами директивы явно исключают URL-адреса, которые сопоставляются с существующими файлами в файловой системе. Так что да, вам будет разрешен доступ /files/testfile.zip
(физический файл) и загрузите его. (В частности, RewriteRule
будет применяться только к несуществующим файлам.)
Однако есть и другие проблемы с опубликованными вами директивами, которые предполагают, что это работает неправильно ... где находится этот файл .htaccess?
Если этот файл .htaccess находится в корне документа, он будет соответствовать каждый запрос, а не только запросы файлов в подкаталоге.
Если файл .htaccess находится в подкаталоге, то любые успешные перезаписи будут перезаписаны на index.py
в этом подкаталоге, а не в корне документа.
Чтобы внутренне переписать все запросы в конкретном подкаталоге к index.py
в корне документа, затем попробуйте следующее в файле .htaccess в этом подкаталоге:
RewriteEngine On
RewriteRule ^ /index.py [L]
ОБНОВИТЬ: Вам нужно будет включить файлы .htaccess, если они еще не включены ... AllowOverride All
должен войти в конфигурацию вашего сервера (All
можно заменить на FileInfo
позже, если вам не нужно все). Options +FollowSymLinks
должен войти либо в <Directory>
в конфигурации вашего сервера или в самом файле .htaccess.