Вы можете использовать LocationMatch
с этим регулярным выражением:
<LocationMatch "^/.">
</LocationMatch>
Single DOT после ^/
будет убедиться, что есть по крайней мере один символ после http://my.domain.com/
, следовательно, заставляя его не соответствовать целевой страницы.
More details about LocationMatch
Тестирование:
Создать эту директиву как:
<LocationMatch "^/(?<sitename>.+)">
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI}?u=%{env:MATCH_SITENAME} [L,R=302]
</LocationMatch>
Теперь, чтобы проверить, что я делаю это:
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
curl -kI -A "Chrome" -L 'http://localhost'
HTTP/1.1 200 OK
Date: Mon, 11 Jul 2016 22:32:47 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
Вы можете ясно видеть, что www
Перенаправление не бывает, когда я прошу посадочную страницу, но случается, когда я прошу /index.php
Это срабатывает на корню, а также ... Я добавил некоторые разъяснения о том, как Я тестирую это, возможно, поведение Shibboleth меняет поведение – JLewkovich
Я добавил информацию о тестировании, чтобы показать, как эта директива работает нормально – anubhava
Теперь я тестирую с помощью «TESTING» для заголовка X-TEST-ME и появляется на всех URL-адресах ... Я думаю, вы можете решить это частично, используя RewriteRules, я надеюсь на более чистое решение. – JLewkovich