2013-11-28 3 views
1

У меня есть сайт, созданный в cs cart.
Ссылка на панель администратора выглядит следующим образом: https://mysite.com/vendorsds.php.
Я хочу установить HTPasswd для пользователя всякий раз, когда он или она посещают эту ссылку https://mysite.com/vendorsds.php?dispatch=companies.update.

Я попытался следующие -установить HTPasswd для конкретного запроса GET в URL-адресе

AuthName "Restricted Area" 
AuthType Basic 
AuthUserFile /var/chroot/home/content/28/11136228/html/htpasswds/.htpasswd 
AuthGroupFile /dev/null 
<Files vendorsds.php?dispatch=companies.update> 
require valid-user 
</Files> 

Когда я удалить dispatch=companies.update из выше его работы на всех страницах, проходящих через vendorsds.php. Можно ли установить HTPasswd для любого конкретного параметра GET (например, dispatch=companies.update) на той же странице?

ответ

0

Это действительно сложно, но возможно. См. Следующий двухэтапный метод:

## force BASIC auth for a specific query parameter 

# 1: set URI to /vendorsds.php/companies.update if query string is dispatch=companies.update 
RewriteCond %{QUERY_STRING} (?:^|&)dispatch=companies.update(?:&|$) [NC] 
RewriteRule ^(vendorsds\.php)/?$ $1/%1 [NC] 

# 2: set AUTH_NEEDED var to 1 if URI is /vendorsds.php/companies.update 
SetEnvIfNoCase Request_URI "^/vendorsds\.php/companies\.update" AUTH_NEEDED 

AuthType Basic 
AuthName "Restricted Area" 
AuthUserFile /var/chroot/home/content/28/11136228/html/htpasswds/.htpasswd 
Require valid-user 
Order allow,deny 
Allow from all 
Deny from env=AUTH_NEEDED 
Satisfy any 
Смежные вопросы