在URL中为特定GET请求设置HTPasswd

时间:2013-11-28 05:40:05

标签: .htaccess .htpasswd cs-cart

我有一个用cs购物车构建的网站。
管理员面板的网址就像这个https://mysite.com/vendorsds.php
我想在用户访问此链接https://mysite.com/vendorsds.php?dispatch=companies.update时为其设置 HTPasswd

我尝试了以下内容 -

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>

当我从通过 vendorsds.php 的所有网页上方移除dispatch=companies.update时。 是否可以为同一页面中的任何特定GET参数(如dispatch=companies.update)设置 HTPasswd

1 个答案:

答案 0 :(得分: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