我的xxx.yyy.edu网站上的根目录中有以下.htaccess文件。
<FilesMatch "(.+)\.php">
AuthType shibboleth
ShibRequestSetting requireSession 1
ShibUseHeaders On
Require valid-user
ShibRequestSetting redirectToSSL 443
</FilesMatch>
这应仅匹配以.php结尾的文件,并匹配以.php结尾的所有文件,然后强制进行身份验证。它的这一部分似乎工作正常。
但是,它也匹配根网址http://xxx.yyy.edu和http://xxx.yyy.edu/。这不是一件好事,因为它强制对站点的根进行身份验证。
它与xxx.yyy.edu/index.htm或域名后面有任何其他内容的其他网址不匹配,例如xxx.yyy.edu/students.htm甚至xxx.yyy.edu/x
我在www.regexr.com上测试了它,它与那里的根网址不匹配。
任何想法/建议表示赞赏。
答案 0 :(得分:2)
您正在获取身份验证对话框,因为您的目标网页默认页面设置为index.php
。
让这个FilesMatch
具有负面预测,以避免index.php
进行身份验证:
<FilesMatch "^(?!index\.php$).+?\.php$">
AuthType shibboleth
ShibRequestSetting requireSession 1
ShibUseHeaders On
Require valid-user
ShibRequestSetting redirectToSSL 443
</FilesMatch>
答案 1 :(得分:0)
听起来好像是新线与&#34; dot&#34; (a la XRegExp)。尝试类似\w+:[\d\w\s\./]+\.php
的内容。