.htaccess запрещает доступ ко всем, кроме одного конкретного файла

У меня есть это правило в корневом файле .htaccess:

# DENY ACCESS TO EVERYTHING INSIDE PHP DIRECTORY
RewriteCond %{HTTP_REFERER} !^http://(www\.)?someurl [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?someurl.*$ [NC]
RewriteRule ^php - [F]

Он запрещает доступ ко всем файлам внутри каталога «php», если доступ к ним осуществляется за пределами моего сервера.

Как добавить одно конкретное исключение для файла, назовем этот файл «_sharer-socnets.php», используя приведенную выше логику RewriteCond/RewriteRule?

Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
2
0
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы запретить все файлы, кроме одного, вы можете использовать это правило:

# DENY ACCESS TO EVERYTHING INSIDE PHP DIRECTORY
RewriteCond %{HTTP_REFERER} !^http://(www\.)?someurl [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?someurl.*$ [NC]
RewriteCond %{REQUEST_URI} !/_sharer-socnets\.php$ [NC]
RewriteRule ^php - [F,NC]

Не работает, я получил сообщение об ошибке «Внутренняя ошибка сервера. На сервере произошла внутренняя ошибка или неверная конфигурация, и он не смог выполнить ваш запрос». Похоже, он блокирует АБСОЛЮТНО ВСЕ, потому что даже если я попытаюсь загрузить index.php, вылезет та же ошибка.

fafa 03.06.2024 08:18

Извините, в моем ответе была опечатка, которую я только что исправил. Пожалуйста, попробуйте еще раз

anubhava 03.06.2024 10:07

Другие вопросы по теме