【问题标题】:apache SetEnvIf Request_URI getting not workingapache SetEnvIf Request_URI 无法正常工作
【发布时间】:2016-05-28 23:18:33
【问题描述】:

当前在 ubuntu 上的 apache 服务器上运行站点,现在整个站点受到 .htaccess 身份验证的保护。

想做的事:我需要允许两个没有认证的URL。

sites1.conf

<VirtualHost *:80>
...
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/(tools|manager)/
</VirtualHost>

<Directory /srv/site1/symfony/>
AuthType Basic
AuthName "My Area"
AuthBasicProvider file
AuthUserFile "/etc/apache2/passwords.htpwd"
Require user user1

SetEnvIf Request_URI ^/en/App/uploadImagesForm allow
Order allow,deny
Allow from env=allow
Satisfy any
</Directory>

网址:xxx.xxxx.xx:9005/en/App/uploadImagesForm/

问题仍在询问密码

【问题讨论】:

    标签: regex linux apache security


    【解决方案1】:

    您可以禁用整个目录的身份验证

      <Directory "/srv/site1/symfony/public">
        AuthType None
        Require all granted
      </Directory>
    

    要只允许特定的 URI,请将以下代码添加到您的 VirtualHost 配置中。

    <Location "/en/App/uploadImagesForm">
        AuthType None
        Require all granted
    </Location>
    

    查看 Apache 部分配置文档了解更多详细信息:http://httpd.apache.org/docs/current/sections.html#file-and-web

    【讨论】:

    • 我在上面尝试过,但仍然询问密码;实际上跟踪了许多链接,但现在不起作用,请帮助....
    • @rgg 指令AuthType NoneRequire all granted 必须禁用身份验证。问题一定出在其他地方。尝试在en/App/uploadImagesForm/ 目录中创建一个.htaccess 文件,其中包含两行:AuthType NoneRequire all granted
    • 如何允许特定的 URL,因为在这个 URL 中有许多内部链接可以访问 css、js 等页面。如果我允许公用文件夹,那么也尝试获取 css 和 js,这样可能会询问密码.
    • @rgg 我添加了一个示例。必须注意LocationLocationMatch.htaccess 中是不允许的,只能在主apache 的配置中使用
    • 在 /srv/site1/symfony 上运行的站点和 URL 调用 /srv/site1/app 文件夹上的 twig 文件,并且此 twig 文件还调用 symfony 文件夹...!!!
    猜你喜欢
    • 2017-08-15
    • 2016-12-01
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-13
    • 2014-09-28
    相关资源
    最近更新 更多