【问题标题】:apache htaccess authentication based on query string基于查询字符串的apache htaccess身份验证
【发布时间】:2012-06-12 19:14:00
【问题描述】:

我正在使用已经在 .htaccess 中具有这些重写条件和规则的普通论坛:

   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteRule ^(.*)$ index.php\?p=$1 [QSA,L]

我现在想要添加一些重写规则,仅当我在页面 /vanilla/index.php?p=/categories/general 上时才要求身份验证(需要有效用户),即只是查询字符串“p=/类别/一般”

感谢您的帮助!

【问题讨论】:

    标签: apache .htaccess query-string


    【解决方案1】:

    我无法根据 URL 的查询字符串添加身份验证 告诉。

    使用mod_rewrite,只能将一个URL重写为另一个,不能指定额外的配置规则。

    <Location> 标记可用于匹配 URL 并需要身份验证,但 Location 无法匹配查询字符串,因此不适用于您的情况。

    您是否有理由需要使用.htaccess 身份验证?你能轻松地将逻辑构建到 PHP 脚本中吗?

    【讨论】:

    • 我在网上找到了不同的可能性,但我无法让它们中的任何一个适用于我的设置。这是我找到的一种方法,尽管它不起作用。当我编写目录路径时,出现服务器错误 500,并且没有目录标记,我无法触发脚本。 (来自lucidiocy.com/2010/07/query-string-based-apache.html
    • 有趣的概念,但我无法让它工作。 500 错误是因为 &lt;Directory&gt; 部分不允许在 .htaccess 文件中,仅在 httpd.conf 和虚拟主机中。我尝试了一些其他组合,但无法使其 100% 工作。通过阅读 cmets,即使该帖子的作者最终也无法使其正常工作,这与我认为的问题相同。可能是我在 Apache 2.4 上进行测试,它在 2.2 版的身份验证方面发生了很大变化。
    • 感谢您的回复。根据 irc.freenode.net 上的#apache 应该是可能的,但是对于我来说学习这个小东西的所有 apache 要求是很麻烦的。希望它最终会成功。
    • 实际上在php.net/manual/en/features.http-auth.php 上,您可以找到有关如何使用基本方法和摘要方法的很好的示例。值得一读!
    猜你喜欢
    • 2015-12-09
    • 1970-01-01
    • 2016-12-25
    • 2023-03-25
    • 2012-03-18
    • 2011-06-02
    • 2020-03-24
    • 1970-01-01
    • 2019-10-29
    相关资源
    最近更新 更多