0

我想要网站的密码保护只是 web 服务 URL 保持允许所有。

这个表达式在 apache 中完美运行,只需要反过来。

<LocationMatch "^(.*service).*$">
        AuthType Basic
        AuthName "Restricted Files"
        AuthUserFile /storage/www/xxxxx/.htpasswd
        Require valid-user
</LocationMatch>

我尝试了许多形式,但不起作用。我试过这个并且在调节器测试器中完美地工作,而不是在 apache (2.2)

<LocationMatch "^(?!.*service).*$">

怎么能否定那个表达呢?

.htaccess 内容(如果有的话)。

RewriteEngine on
RewriteBase /


# ....
RewriteRule     txxxx/(.*)        index.php?config=main_lite&r=script/xxx/deliverData&url=$1

# rule 1 -- let these requests pass through (S=1 skips the next rule)
RewriteCond %{REQUEST_FILENAME} favicon.(gif|ico) [NC,OR]
RewriteCond %{REQUEST_FILENAME} .+\.(pdf|js|css|txt|jpg|jpeg|gif|png|bmp|ico|swf|html|log|svg|ttf|eot|woff|woff2)$ [OR]
RewriteCond %{REQUEST_URI} rsc/ [OR]
RewriteCond %{REQUEST_URI} index.php$
RewriteRule (.*) - [S=1]

# rule 2 - pass every request to index.php
RewriteRule .* index.php
4

1 回答 1

0

似乎 Apache 正则表达式支持太有限了..

但是,您可以轻松地“否定”您的表达式,方法是在封闭子句中定义您想要的所有内容(例如“Location”),然后在您的(非否定)LocationMatch 下恢复为“默认”设置。

像这样的东西:https ://serverfault.com/questions/591591/apache-locationmatch-regex-behaviour-does-not-seem-correct

于 2015-10-15T01:31:59.197 回答