3

/test を持つ URL パスを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にリダイレクト

あらゆる種類の他のすべての要求は、ルート フォルダー (http://localhost/accessdenied.html) で「アクセスが拒否されました」と表示されている html ページにリダイレクトする必要があります。

Apache で RedirectMatch を使用してこれを達成するにはどうすればよいですか。私は次のようなものを試しました

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

うまくいきませんでした。

4

2 に答える 2

1

これはServerFaultの質問としては良いのではないでしょうか。

とにかく:
RedirectMatch でこれを達成する方法はわかりませんが、ModRewrite でこれを行う方法は知っています:

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

これは、どの HTTP ホストでも機能するかなり一般的な形式であり (ホストの詳細がわからないため) bla、URL の先頭にある と一致し、まだ Https でないものはすべてリダイレクトし、引数とすべての。

于 2012-03-21T04:39:37.123 に答える
0

これは、私の Apache httpd 2.2 サーバーで問題なく動作します。

RedirectMatch 301 ^(/someprefix[^/]*/.*)$ https://hostname$1
于 2012-10-19T20:11:12.363 に答える