Защита паролем виртуального каталога с помощью .htaccess - PullRequest
3 голосов
/ 08 сентября 2010

У меня есть сайт с виртуальной структурой каталогов, такой как 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. Он успешно защищает весь сайт при перемещении в mysite.com, поэтому я знаю, что путь правильный. Когда он находится в подкаталоге, он генерирует ошибку 404, а не пароль.

AuthName "Restricted Area" 
AuthType Basic 
AuthUserFile /home/myusername/.htpasswd 
require valid-user

Ответы [ 3 ]

1 голос
/ 14 марта 2012

Старая нить старая ...

Наткнулся на это, имея схожую проблему, пароль защищает поддомен при сохранении основного сайта без.

Решение оказалось проще, чем я предполагал.

В document_root / .htaccess, domain.com/wiki перенаправлял на domain.com/w (потому что это чище?

RewriteEngine On
RewriteRule ^/?w(/.*)?$ /wiki/index.php [PT,L,QSA]
RewriteRule ^/*$ /wiki/index.php [L,QSA]

В document_root / wiki / .htaccess каталог вики защищен паролем:

AuthType Basic
AuthName "Restricted"
AuthUserFile "/home/user/.htpasswds/public_html/wiki/passwd"
require valid-user

Я просто добавил эту строку в начало документа_root / .htaccess, чтобы она гласила:

AuthType None
RewriteEngine On
RewriteRule ^/?w(/.*)?$ /wiki/index.php [PT,L,QSA]
RewriteRule ^/*$ /wiki/index.php [L,QSA]

domain.com больше не защищен паролем, а domain.com/wiki перенаправляет по назначению и с защитой паролем.

Надеюсь, это поможет кому-то еще.

0 голосов
/ 05 июля 2011

Предполагается, что вы используете Apache 2.2

... и что ваш сервер работает на компьютере, на котором у вас нет прав на изменение конфигурации сервера

... then, create: mysite.com/f/.htaccess с желаемым правилом.

Хорошее обсуждение того, когда использовать это, а когда нет, можно найти здесь .

0 голосов
/ 19 октября 2010

Одна вещь, которая работает (но не самое элегантное решение) - это фактически создать папку с именем «папка» (или любую виртуальную папку, которую вы пытаетесь защитить паролем) и поместить в нее .htaccess.

...