Apache Drupal+。htpasswd:如何锁定开发人员站点但允许访问单个路径

Apache Drupal+。htpasswd:如何锁定开发人员站点但允许访问单个路径,apache,drupal,.htpasswd,Apache,Drupal,.htpasswd,所以我有一个运行Drupal的开发站点设置。我已经用基本的HTTPAuth+htpasswd锁定了该站点,以防坏人进入 问题是一个单一的节点,一个webform,需要从live站点访问这个开发站点 我的问题是:由于Drupal复杂的引导过程,我如何只允许访问这个文件/URL 我的htpasswd的vhost配置: <Directory /> AuthUserFile /var/www/.htpasswd AuthName "my radbad dev site" A

所以我有一个运行Drupal的开发站点设置。我已经用基本的HTTPAuth+htpasswd锁定了该站点,以防坏人进入

问题是一个单一的节点,一个webform,需要从live站点访问这个开发站点

我的问题是:由于Drupal复杂的引导过程,我如何只允许访问这个文件/URL

我的htpasswd的vhost配置:

<Directory />
   AuthUserFile /var/www/.htpasswd
   AuthName "my radbad dev site"
   AuthType Basic
   Require valid-user
</Directory>

AuthUserFile/var/www/.htpasswd
AuthName“我的radbad开发站点”
AuthType Basic
需要有效用户
我尝试过以下方法但没有成功:

<Location "/node/1334">
   Allow from all
   Satisfy any
</Location>

通融
满足任何

您不能这样做,因为webform不是一个文件,它是根据您提供给Drupal的信息(它放在数据库中)动态生成的。所有Drupal URI(除了上传的文件)都是index.php,将您发送到正确的位置。无法告诉httpauth有时index.php可以自由访问,有时它需要auth


通过Drupal模块控制访问有几个选项,或者(如果您的实时站点是Drupal),您可以给它提供相同的webform,但是使用httpauth进行任何调整都不能解决您的问题。

您不能这样做,因为webform不是一个文件,它是根据您提供给Drupal的信息动态生成的(它放在数据库中)。所有Drupal URI(除了上传的文件)都是index.php,将您发送到正确的位置。无法告诉httpauth,有时index.php可以自由访问,有时它需要auth

有几个选项可以通过Drupal模块控制访问,或者(如果您的实时站点是Drupal)你可以给它同样的webform,但是对httpauth的任何调整都不能解决你的问题。

-指令在处理
.htaccess
之后应用。这意味着,
mod_rewrite
已经完成了它的工作,URL现在是
/index.php?q=node/1334
。这很糟糕,因为
无法用于基于查询字符串的配置。有关详细信息,请参阅和

你必须想出一个完全不同的解决方案,比如让Drupal数据库在其他一些从外部无法访问的URL下可用。

-指令在
.htaccess
处理后应用。这意味着,
mod_rewrite
已经完成了它的任务,URL现在是
/index.php?q=node/1334
。这是错误的,因为
不能用于基于查询字符串的配置。有关详细信息,请参阅和


你必须想出一个完全不同的解决方案,比如让Drupal数据库在其他URL下可用,这是无法从外部访问的。

< P>如果你想进入HTTP认证路线,考虑不要编辑.HTAccess并创建一个.HTPASWD文件。这是一个容易出错的过程,而安全站点给了你一个错误的过程。您可以使用它来键入您希望排除的安全路径。甚至更好的是,它使用Drupal身份验证系统,因此您可以基于Drupal角色和权限来拒绝/允许人们访问站点。

< P>如果您想进入HTTP身份验证路由,请考虑不要编辑.HTAccess并创建.HTSpWWD文件。这是一个错误。易受r攻击的进程,而安全站点为您提供了一个表单,您可以使用该表单键入您希望从安全中排除的路径。更好的是,它使用Drupal身份验证系统,因此您可以根据Drupal角色和权限拒绝/允许用户访问站点。

是的,这是有道理的。不幸的是,表单无法在实时站点上进行调节s(该网站设计糟糕)。可能会研究ACL模块。ACL很好,但请记住,它只是一个API。您仍然需要节点访问或多种备选方案之一,才能真正提供一个可执行某些操作的UI。:)是的,这很有意义。不幸的是,表单不能在实时站点上进行调节(该站点设计糟糕)。我们可能会研究ACL模块。ACL很好,但请记住,它只是一个API。您仍然需要node_访问或多种备选方案中的一种,才能真正提供一个执行某些操作的UI。:)Web表单不在Drupal数据库中。它是由webform模块根据数据库中的信息构建的。除非您想创建一个特殊的独立webapp来获取webform数据,并在Drupal之外准确地复制webform模块的功能(当一个新的Drupal站点正在运行时,这是一种浪费),否则该DB不会为您提供一个可用的表单。@HedgeMage设置一个额外的Drupal安装当然是一种选择。我把它留给gigantorTRON来决定。我只是指出了为什么他的解决办法行不通。如果你认为这值得投反对票。。。说吧。这很有道理,但你的答案中没有明确说明……删除下一票和编辑。网络表单不在Drupal数据库中。它是由webform模块根据数据库中的信息构建的。除非您想创建一个特殊的独立webapp来获取webform数据,并在Drupal之外准确地复制webform模块的功能(当一个新的Drupal站点正在运行时,这是一种浪费),否则该DB不会为您提供一个可用的表单。@HedgeMage设置一个额外的Drupal安装当然是一种选择。我把它留给gigantorTRON来决定。我只是指出了为什么他的解决办法行不通。如果你认为这值得投反对票。。。说吧。这很有道理,但你的回答不清楚……删除否决票和编辑。