Защита виртуального каталога паролем с помощью .htaccess

Защита виртуального каталога паролем с помощью .htaccess

У меня есть сайт с виртуальной структурой каталогов, например, mysite.com/folder/titleкоторый на самом деле является переписыванием .htaccess в mysite.com/f/index.php?p=title. Я хочу защитить паролем папку folderс помощью .htaccess и знаю, как это сделать с реальными папками. Но я не хочу защищать паролем основной сайт mysite.com, и прямо сейчас, если я помещаю файл .htaccess в mysite.comкаталог, я защищаю mysite.comи mysite.com/folder. Я также пробовал защищать mysite.com/f.

Как защитить только mysite.com/folderс помощью .htaccess?

Содержимое .htaccess mysite.com.

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteRule ^folder/(.*)$ /f/index.php?p=$1 [PT,L,QSA]
RewriteRule ^folder/*$ /f/index.php [L,QSA]

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

</IfModule>

Файл .htaccess, который я попробовал, mysite.com/fуспешно защищает весь сайт при перемещении в другой файл .htaccess, поэтому я знаю, что путь правильный.

AuthName "Restricted Area" 
AuthType Basic 
AuthUserFile /home/myusername/.htpasswd 

решение1

Прежде всего, вам не следует помещать эту конфигурацию (правила перезаписи) в файлы .htaccess, вам следует поместить ее в основной файл конфигурации в разделе Directory (предполагая, что у вас есть доступ к этому файлу).Документация Apache объясняет, почему.

Вам следует проверить, что у вас правильные настройки AllowOverride. Если все настроено правильно, то для защиты паролем достаточно, чтобы указанный вами файл .htaccess находился в папке mysite/f.

Связанный контент