Как я могу запретить доступ к полной папке и подпапкам, за исключением одного файла? Этот файл: toon.php и находится в той же папке.
.htaccess запрещает доступ ко всем, кроме одного файла
Ответ 1
Order Allow,Deny
<FilesMatch "^toon\.php$">
Allow from all
</FilesMatch>
Это, вероятно, наиболее эффективно, что вы можете получить.
Ответ 2
AuthGroupFile /dev/null
AuthName "Private Area"
AuthType Basic
AuthUserFile .htpasswd
require valid-user
<Files "toon.php">
Allow from all
Satisfy Any
</Files>
Работает для меня. Не забудьте настроить файл .htpasswd.
Ответ 3
Deny From All
<FilesMatch "^toon\.php$">
Allow From All
</FilesMatch>
Работал для меня...
Ответ 4
Вы можете использовать директивы <Directory>
и <Files>
. Вы можете посмотреть здесь документацию:
http://httpd.apache.org/docs/1.3/mod/core.html#directory
http://httpd.apache.org/docs/1.3/mod/core.html#files
Короче говоря, вы хотите что-то вроде этого:
<Directory /folder/without/access >
Order Deny,Allow
Deny from All
</Directory>
<Files "filename">
Order Deny,Allow
Allow from All
</Files>
Ответ 5
Добавьте следующее правило в файл htaccess в корневом каталоге
RewriteEngine on
RewriteRule !toon\.php$ - [F]
Это запретит доступ ко всем файлам и папкам, кроме toon.php.
Ответ 6
Если, как и я, вы ищете способ аутентификации на весь сайт/папку, за исключением одного файла, вы обнаружите, что этот метод работает очень хорошо:
#allows a single uri through the .htaccess password protection
SetEnvIf Request_URI "/testing_uri$" test_uri
AuthName "Restricted Area"
AuthType Basic
AuthUserFile /path/to/your/.htpasswd
AuthGroupFile /
Require valid-user
#Allow valid-user
Deny from all
Allow from env=test_uri
Satisfy any
Пример взято из: этот сайт