2016-07-11 33 views
0

Ich lese, dass <Location '/'> eigentlich die gesamte Domäne entspricht, nicht nur den Stammort. Ich möchte ein Location oder LocationMatch Block, der alles passt zu schaffen, sondern http://my.domain.com/ Das bedeutet, es ausgelöst wird, wenn alle Zeichen folgen, dass die endgültige ‚/Apache LocationMatch alles außer Root

Hier ist, wie ich dies testen:

<LocationMatch "REGEX GOES HERE"> 
    AuthType Shibboleth 
    ShibRequireSession On 
    Require Shibboleth 
</LocationMatch> 

Ich denke, Shibboleth kann etwas Verhalten ändern. Beachten Sie auch, dass ich Apache 2.2 verwende, aber eine Lösung, die auf 2.4 funktioniert, wird auch ausreichen.

Antwort

0

Sie können LocationMatch mit diesem regulären Ausdruck verwenden:

<LocationMatch "^/."> 

</LocationMatch> 

Einzel DOT nach ^/ wird es nicht passen Zielseite sicherstellen, dass es mindestens ein Zeichen nach http://my.domain.com/ daher verursacht zu.

More details about LocationMatch

Testing:

dieser Anweisung erstellen wie:

<LocationMatch "^/(?<sitename>.+)"> 
    RewriteEngine On 
    RewriteCond %{HTTP_HOST} !^www\. 
    RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI}?u=%{env:MATCH_SITENAME} [L,R=302] 
</LocationMatch> 

Jetzt ist dieses Ich tue zu testen:

curl -kI -A "Chrome" -L 'http://localhost/index.php' 
HTTP/1.1 302 Found 
Date: Mon, 11 Jul 2016 22:31:37 GMT 
Server: Apache/2.4.12 (Unix) OpenSSL/1.0.1j PHP/5.6.9 mod_wsgi/3.5 Python/2.7.9 
Location: http://www.localhost/index.php?u=index.php 
Content-Type: text/html; charset=iso-8859-1 

HTTP/1.1 200 OK 
Date: Mon, 11 Jul 2016 22:31:37 GMT 
Server: Apache/2.4.12 (Unix) OpenSSL/1.0.1j PHP/5.6.9 mod_wsgi/3.5 Python/2.7.9 
X-Powered-By: PHP/5.6.9 
Content-Type: text/html; charset=UTF-8 

curl -kI -A "Chrome" -L 'http://localhost/user.php' 
HTTP/1.1 302 Found 
Date: Mon, 11 Jul 2016 22:33:57 GMT 
Server: Apache/2.4.12 (Unix) OpenSSL/1.0.1j PHP/5.6.9 mod_wsgi/3.5 Python/2.7.9 
Location: http://www.localhost/user.php?u=user.php 
Content-Type: text/html; charset=iso-8859-1 

HTTP/1.1 200 OK 
Date: Mon, 11 Jul 2016 22:33:57 GMT 
Server: Apache/2.4.12 (Unix) OpenSSL/1.0.1j PHP/5.6.9 mod_wsgi/3.5 Python/2.7.9 
X-Powered-By: PHP/5.6.9 
Content-Type: text/html; charset=UTF-8 

Sie deutlich sehen, dass www Umleitung nicht passiert, wenn ich Zielseite anfordern, aber passiert, wenn ich /index.php

+0

anfordern Dies auch auf root ausgelöst wird ... Ich habe eine Klarstellung hinzugefügt, wie Ich teste dies, vielleicht ändert Shibboleth Verhalten – JLewkovich

+0

Ich habe Testinformationen hinzugefügt, um zu zeigen, wie diese Richtlinie funktioniert – anubhava

+0

Ich teste jetzt mit 'Header Set X-TEST-ME" TESTING "' und es erscheint auf allen URLs ... Ich denke, dass Sie dies teilweise lösen können, indem Sie RewriteRules verwenden, ich hoffe auf eine sauberere Lösung – JLewkovich