有没有办法htaccess密码保护www.somedomain /?data& some-url?

时间:2014-03-09 15:43:42

标签: php html apache .htaccess security

我想通过htaccess保护www.somedomain /?data& some-url并让www.somedomain正常工作,但是当直接或通过链接访问该URL时,htaccess会保护它。

有可能吗?


细..

让这个“更容易”

我的htaccess文件就是这个,但它无法正常工作

<files ?some&data>
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /dir/passwd
require valid-user
</files>

3 个答案:

答案 0 :(得分:1)

我建议使用解决方法:您可以使用.htaccess将该特定路径(/?data&amp; some-url)重定向到.htaccess受保护的虚拟文件夹.e.g / myproctedtforlder /。 Prix​​提到了QUERY_STRING条件。我用完整的细节修改了我的答案。首先要做的是将index.php重命名为你想要的任何名称,在这种情况下我使用了index2.php。

所以你的主页面.htaccess将包含以下这些行:

RewriteCond %{QUERY_STRING} data&some-url
RewriteRule ^$ /myprotectedfolder/ [QSA,L] 

RewriteCond %{REQUEST_FILENAME} !\.(gif|png|jpg|jpeg|jfif|bmp|css|js|txt|xml)$ [NC]  
RewriteCond %{QUERY_STRING} ^.*$
RewriteRule ^$ index2.php [QSA,L] 

RewriteRule ^index\.php$ index2.php [QSA,L] 

然后你的受保护文件夹(/ myprotectedfolder /).htaccess看起来像:

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

我没有提供有关.htpassword的更多详细信息,您可以在此处找到许多示例:http://davidwalsh.name/password-protect-directory-using-htaccess。 在下面提供的“回答”简单详细信息中,您应该注意,在标记中,您应该提供文件名格式(例如index。(php | html))而不是查询字符串。在您的情况下,您提供查询字符串。所以这不是开始。你能否删除那个'答案'并把它作为评论?

答案 1 :(得分:1)

你好这篇关于这个的文章

1heres the Link of that article

我可以在这里写一些文字并提及来源,但有些文字可能对所有

都没有帮助

答案 2 :(得分:0)

以下是如何为特定查询字符串显示身份验证对话框。

RewriteEngine On
RewriteBase /

## force BASIC auth for a specific query parameter
#set PSSWD_NEEDED var to 1 if query string is matched
RewriteCond %{QUERY_STRING} (?:^|&)data&some-url(?:&|$) [NC]
RewriteRule ^(index\.php)?/?$ index.php/%{QUERY_STRING} [L]

# set PSSWD_NEEDED var to 1 if URI is /index.php/...
SetEnvIfNoCase Request_URI "^/index\.php/data&some-url" PSSWD_NEEDED

AuthType Basic
AuthName "Restricted Area"
AuthUserFile /dir/passwd
require valid-user
Order allow,deny
Allow from all
Deny from env=PSSWD_NEEDED
Satisfy any