Установите перенаправление apache с http на https для определенного URL - PullRequest
3 голосов
/ 21 марта 2012

Я хотел бы перенаправить любой URL-путь с / test на https://localhost/test. Кроме того, если URL-адрес / test? User = 123, он должен быть перенаправлен на https://localhost/test?user=123 или, скорее, если URL-адрес / test / test_db / user? id = 123 & pwd = 123 необходимо перенаправить на https://localhost/test/user/test_db/user?id=123&pwd=123

Все другие запросы любого рода должны быть перенаправлены на html-страницу с надписью «Доступ запрещен» в корневой папке (http://localhost/accessdenied.html).

Как мне добиться этого с RedirectMatch в apache. Я пробовал что-то вроде

RedirectMatch permanent ^test/(.*)$ https://localhost/test/$1

Что не сработало.

Ответы [ 2 ]

1 голос
/ 21 марта 2012

Интересно, лучше ли это как вопрос ServerFault.

В любом случае:
Я не знаю, как вы можете добиться этого с RedirectMatch, но я знаю, как вы можете сделать это с ModRewrite:

RewriteEngine On$
RewriteCond %{HTTPS} off$
RewriteRule ^/bla https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]$

Это довольно общая форма, которая будет работать для любого HTTP-хоста (поскольку я не знаю подробностей о вашем хосте) и будет перенаправлять все, что соответствует bla в началеURL и еще не Https, с аргументами и всем.

0 голосов
/ 20 октября 2012

Это прекрасно работает на моем сервере Apache httpd 2.2:

RedirectMatch 301 ^(/someprefix[^/]*/.*)$ https://hostname$1
...