我使用LocationMatch指令在匹配某些URL模式时设置标题:
# 1 # Expected matches: //mysite.com/any-page-with-at-least-a-character-and-no-dot <LocationMatch "^/[^\.]+$"> Header set X-Intelligence "STUPID" </LocationMatch> # 2 # Expected matches: //mysite.com/ , //mysite.com/main , //mysite.com/about <LocationMatch "^/(|main|about)$"> Header set X-Intelligence "CLEVER" </LocationMatch>
然而,URL //mysite.com/匹配#1而不是#2。 这是一个错误还是我做错了什么?
我甚至尝试在#2中使用正则expression式"^/(main|about)?$" ,但仍然没有爱。
可以通过使用这个configuration来解决它:
<VirtualHost 127.0.0.1:80> ServerName localhost <Location "/"> Header set X-Intelligence "CLEVER" </Location> <LocationMatch "^/[^\.]+$"> Header set X-Intelligence "STUPID" </LocationMatch> <LocationMatch "^/(main|about)$"> Header set X-Intelligence "CLEVER" </LocationMatch> </VirtualHost>
这样,以下请求按预期工作:
# curl -I -L http://127.0.0.1/ 2> /dev/null | grep XI X-Intelligence: CLEVER # curl -I -L http://127.0.0.1/foo 2> /dev/null | grep XI X-Intelligence: STUPID # curl -I -L http://127.0.0.1/about 2> /dev/null | grep XI X-Intelligence: CLEVER