Назад | Перейти на главную страницу

Модуль перезаписи .htaccess не работает под Apache в windows

Я пытаюсь перенаправить запросы в папку для резервного копирования в один файл, 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.