Как я могу запретить доступ к http://sub.mydomain.com/ , но разрешить (полностью) http://sub.mydomain.com/test (или http://sub.mydomain.com/test/ )
Существует фиктивный фокус за http://sub.mydomain.com/test/
Директивы .htaccess относятся к этому каталогу и ко всем его подкаталогам , поэтому вы должны запретить доступ в свой DocumentRoot,
http://sub.mydomain.com/.htaccess :
Order deny,allow Deny from all
И переопределите это в любых конкретных подкаталогах, к которым вы хотели бы разрешить доступ,
http://sub.mydomain.com/test/.htaccess :
Order allow,deny Allow from all
Как насчет .htaccess в корневом каталоге со следующими строками?
RewriteEngine On # check if request is for subdomain RewriteCond %{HTTP_HOST} ^sub.mydomain.com$ [NC] # check if 'test' isnt part of request RewriteCond %{REQUEST_URI} !^/test/?(.*)$ [NC] # if subdomain and no 'test' part, redirect to main domain... RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R,L]
Так что если раздел '/ test /' присутствует, перенаправление не происходит …
Попробуйте создать файл .htaccess в sub.mydomain.com для deny и в sub.mydomain.com/test для allow.
Или вы можете перенаправить с http://sub.mydomain.com/, чтобы отклонить subdir.