1

サーバーの移行のため、次の mod_rewrite コードを使用して/rc、 、/roundcube/sm、またはで始まるすべての URI を指定しようとしています。/squirrelmailhttps://webmail.{HTTP_HOST}

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$
RewriteCond %{REQUEST_URI} ^/(rc|roundcube|sm|squirrelmail)(\/)?(.*)?$
RewriteRule ^/(.*) https://webmail.%1 [R=302, L]

このリダイレクトがマシン上のすべての仮想ホストに影響するようにしたいので、Apache の httpd.conf ファイル内の仮想ホスト ディレクティブに入れています。

サーバーは mod_rewrite を有効にしていますが、上記はまったく何もしていないようです!

おそらく誰かが私のエラーを見つけることができますか?

意図した結果の例は次のとおりです。

http://www.mydomain.com/rc --> https://webmail.mydomain.com

ユーザーが元の URL をブックマークしたときに含まれる、wwwまたは末尾のパラメーターと多分パラメーターの有無にかかわらず、タスクを処理できる必要があります。/

4

1 に答える 1

1

それを単にhttpd.confファイルに入れるだけでは、ルールのコンテキストがないと思います。場所またはディレクトリにラップしてみてください(場所はおそらく良いでしょう):

<Location "/">
  RewriteEngine on
  RewriteCond %{REQUEST_URI} ^/(rc|roundcube|sm|squirrelmail)(/)?(.*)?$
  RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$
  RewriteRule ^/(.*) https://webmail.%2 [R=302,L]
</Location>

後のスペースを取り除くR=302,

于 2013-09-06T18:59:09.830 に答える