【问题标题】:Is there a way to htaccess password protect www.somedomain/?data&some-url?有没有办法 htaccess 密码保护 www.somedomain/?data&some-url?
【发布时间】:2014-03-10 12:51:18
【问题描述】:

我想用 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>

【问题讨论】:

  • 你可以控制一些网址吗?如果是这样,这是可能的,否则不是。在第一种情况下,您可以生成作为some-url 链接一部分的散列密钥,并且仅在发现该密钥有效时才显示该站点。这种技术通常也包含时间,因此链接只会在失效之前工作几分钟。 (事实上​​,值得在您的问题中添加更多细节 - 您想做什么?请将该回复添加到您的问题中,谢谢)。
  • 我不明白“您是否可以控制某些 URL”。我正在尝试保护 URL 为 /?page&login 的 CMSimple 登录页面(如果有帮助的话)
  • 我在问您是否对 some-url 网站具有管理控制权。您能否为该站点添加安全机制?
  • 是的,我可以在我的网络服务器上修改自己的编码和文件

标签: php html apache .htaccess security


【解决方案1】:

我建议一种解决方法:您可以使用 .htaccess 将该特定路径 (/?data&some-url) 重定向到受 .htaccess 保护的虚拟文件夹,例如 /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))而不是查询字符串。在您的情况下,您正在提供查询字符串。所以这不是一开始的。您能否删除该“答案”并将其作为评论?

【讨论】:

  • 除非您无法在RewriteRule 上捕获查询字符串,否则您需要%{QUERY_STRING} 的条件
  • 是的。我的目标是给出一个关于如何解决问题的一般解决方法。细节需要注意。
  • 这是一个太大的细节,在这种情况下不能忽略。
  • 不使用 ?data&some-url 重写到指定文件夹
  • 我根据 Prix 使用 query_string 的评论编辑了答案。
【解决方案2】:

你好,这篇文章写得很好

1:heres the Link of that article

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

【讨论】:

    【解决方案3】:

    以下是显示特定查询字符串的身份验证对话的方法。

    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
    

    【讨论】:

      猜你喜欢
      • 2012-07-30
      • 1970-01-01
      • 1970-01-01
      • 2011-09-20
      • 1970-01-01
      • 2022-01-07
      • 2016-09-23
      • 2023-02-25
      • 1970-01-01
      相关资源
      最近更新 更多