我在开发服务器上进行了基本身份验证设置。它是在我的 httpd.conf
中设置的网站的 VirtualHost 文件。我不得不设置它以排除某些目录,这没有引起任何问题并且一切正常。
问题在于排除了通过我的 mod_rewrite
的 URL。 .htaccess
中的规则文件。我的设置是让所有 URL 都通过我的 index.php
文件,然后从那里找到并运行相关代码。我尝试像其他人一样添加我想排除的 URL ( /businesses/upload_logo
),但它仍然需要身份验证。这是我目前拥有的:
...
<Location />
SetEnvIf Request_URI "/businesses/upload_logo" noauth=1
SetEnvIf Request_URI "/api/.*" noauth=1
AuthType Basic
AuthName "Private"
AuthUserFile ****
Require valid-user
Order deny,allow
Satisfy any
Deny from all
Allow from env=noauth
</Location>
....
我发现了与我类似的问题 here & here但答案只给了我我已经在尝试的东西。
我也想过其他可能的解决方案,但这些将是最后的手段。我想看看我目前的做法是否可行:
.htaccess
文件代替SetEnvIf HOST ...
但我想看看它是否可以先以这种方式修复。 mod_rewrite
规则:...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php [L,QSA]
最佳答案
尝试添加
Allow from env=REDIRECT_noauth
关于apache - 如何使基本身份验证排除重写的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13950207/