URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 6717
[ Назад ]

Исходное сообщение
"Разрешить доступ только к одному из файлов средствами .htaccess"

Отправлено иванов , 01-Фев-10 17:12 
В папке есть несколько файлов *php, один из них указан как DirectoryIndex.
Требуется стандартными средствами .htaccess запретить обращаться ко всем файлам, кроме индексного.
Например:

$ ls -a /var/www/dir
.htaccess test1.php test2.php index1.php

$ cat /var/www/dir/.htaccess
DirectoryIndex index1.php
Order Allow,Deny
<Files index1.php>
Allow from all
</Files>
<FilesMatch "\.php">
Deny from all
</FilesMatch>

Но данный вариант не работает, на все запросы (GET /dir, GET /dir/index1.php, GET /dir/test1.php) выдаёт 403 ошибку, хотя в первых двух случаях должен показываться результат работы index1.php


Содержание

Сообщения в этом обсуждении
"Разрешить доступ только к одному из файлов средствами .htacc..."
Отправлено иванов , 01-Фев-10 17:31 
>[оверквотинг удален]
><Files index1.php>
>Allow from all
></Files>
><FilesMatch "\.php">
>Deny from all
></FilesMatch>
>
>Но данный вариант не работает, на все запросы (GET /dir, GET /dir/index1.php,
>GET /dir/test1.php) выдаёт 403 ошибку, хотя в первых двух случаях должен
>показываться результат работы index1.php

Нашёл, проблема была в очерёдности правил. Вот такая конструкция работает:

DirectoryIndex service.php
Order Deny,Allow # можно не указывать, т.к. это значение по умолчанию
<FilesMatch "\.php">
Deny from all
</FilesMatch>
<Files service.php>
Allow from all
</Files>