maybe you can correct the instruction below and try again:
change
WSGIScriptAliasMatch ^(/v3/OS-FEDERATION/identity_providers/.*?/protocols/.*?/auth)$ /usr/lib/cgi-bin/keystone/keystone-public
to
WSGIScriptAliasMatch ^(/v3/OS-FEDERATION/identity_providers/.*?/protocols/.*?/auth)$ /usr/lib/cgi-bin/keystone/keystone-public/$1
note that there is a '$1' at the end of instruction, it means that the matched url will passed to keystone-public thus we can access the right url.
maybe you can correct the instruction below and try again: Match ^(/v3/OS- FEDERATION/ identity_ providers/ .*?/protocols/ .*?/auth) $ /usr/lib/ cgi-bin/ keystone/ keystone- public Match ^(/v3/OS- FEDERATION/ identity_ providers/ .*?/protocols/ .*?/auth) $ /usr/lib/ cgi-bin/ keystone/ keystone- public/ $1
change
WSGIScriptAlias
to
WSGIScriptAlias
note that there is a '$1' at the end of instruction, it means that the matched url will passed to keystone-public thus we can access the right url.