Назад | Перейти на главную страницу

Защита паролем виртуального каталога с помощью .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 

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

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