3

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

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

EDIT: Добавлено .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 
+0

У вас есть доступ к изменению конфигурации основного сервера? –

+1

Вы пытались переместить файл .htaccess в папку «f», чтобы защитить его? – 2ndkauboy

+0

Да, просто перетаскивая его в '/ f', он должен выполнять эту работу. –

ответ

0

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

0

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

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

... затем, создать: mysite.com/f/.htaccess с желаемым правилом.

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

+0

Я уже пробовал это без везения ... :( – jkeesh

+0

Хм ... Пробовали ли вы проверить, что .htaccess загружается? Один из способов проверить - это добавить не-смысл в текстовый файл, загрузить страницу из каталога, содержащего фиктивный файл .htaccess, и проверьте журнал своего сервера, чтобы убедиться, что была выполнена ошибка. Если это не вызывает ошибку (файл не загружен), возможно, ваша проблема связана с установкой AllowOveride на «Нет» 'здесь: httpd.apache.org/docs/current/mod/core.html#allowoverride –

1

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

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

Решение было проще, чем я изначально сделал это.

В 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/вики/.htaccess каталога вики было защищенный паролем:

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

Я просто добавил эту строку в верхней части document_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 перенаправляется по назначению и с защитой паролем.

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

Смежные вопросы