0

たとえば、サブドメインauto.domain.intに送信されたリクエストをwww.domain.int/doc/sample-ratesにリダイレクトする必要があります。これはZendアプリケーションであるため、MVCが使用されます。.htaccessconfに次のものがあります。

RewriteEngine On

RewriteCond %{HTTP_HOST} ^auto\.domain\.int$
RewriteRule ^.*$ /doc/sample-rates [PT,L]

問題は、実際のファイルの名前をRewriteRule置換としてファイルシステムに配置すると、たとえば「script.php」とすると、すべてうまく機能するということです。auto.domain.intホスト名で提供されるscript.phpファイルのコンテンツ。

一方、MVCルートをRewriteRule置換として配置すると、「/ doc / sample-rates」パスでapacheから500エラーが発生し、「http://www.domain.int/doc/sample-rates 」で400エラーが発生しました。 'パスとapacheログの数行:

127.0.0.1 --- [04 / Mar / 2013:10:50:19 --0500] [auto.domain.int/sid#b73cd9d8] [rid#b6d75058 / initial](3)[perdir / var / www / domain /base/www.domain.com/htdocs/]ディレクトリごとのプレフィックスを削除:/var/www/domain/base/www.domain.com/htdocs/->
127.0.0.1 --- [04 / Mar / 2013:10:50:19 --0500] [auto.domain.int/sid#b73cd9d8] [rid#b6d75058 / initial](3)[perdir / var / www / domain /base/www.domain.com/htdocs/]パターン'^。*$'をuri''に適用します
127.0.0.1 --- [04 / Mar / 2013:10:50:19 --0500] [auto.domain.int/sid#b73cd9d8] [rid#b6d75058 / initial](2)[perdir / var / www / domain /base/www.domain.com/htdocs/] rewrite''->'/ doc / sample-rates'
127.0.0.1 --- [04 / Mar / 2013:10:50:19 --0500] [auto.domain.int/sid#b73cd9d8] [rid#b6d75058 / initial](2)[perdir / var / www / domain /base/www.domain.com/htdocs/]'/ doc/sample-rates'を強制的に次のAPIURI-to-filenameハンドラーに渡します
127.0.0.1 --- [04 / Mar / 2013:10:50:19 --0500] [auto.domain.int/sid#b73cd9d8] [rid#b6d75058 / initial](1)[perdir / var / www / domain /base/www.domain.com/htdocs/] / doc/sample-ratesを使用した内部リダイレクト[内部リダイレクト]
127.0.0.1 --- [04 / Mar / 2013:10:50:19 --0500] [auto.domain.int/sid#b73cd9d8] [rid#b6d67018 / initial / redir#1](3)[perdir / var /www/domain/base/www.domain.com/htdocs/]パス情報の接尾辞を追加:/var/www/domain/base/www.domain.com/htdocs/doc-> / var / www / domain / base / www.domain.com/htdocs/doc/sample-rates
127.0.0.1 --- [04 / Mar / 2013:10:50:19 --0500] [auto.domain.int/sid#b73cd9d8] [rid#b6d67018 / initial / redir#1](3)[perdir / var /www/domain/base/www.domain.com/htdocs/]ディレクトリごとのプレフィックスを削除:/var/www/domain/base/www.domain.com/htdocs/doc/sample-rates-> doc / sample-料金
127.0.0.1 --- [04 / Mar / 2013:10:50:19 --0500] [auto.domain.int/sid#b73cd9d8] [rid#b6d67018 / initial / redir#1](3)[perdir / var /www/domain/base/www.domain.com/htdocs/]パターン'^。*$'をuri'doc/sample-rates'に適用
127.0.0.1 --- [04 / Mar / 2013:10:50:19 --0500] [auto.domain.int/sid#b73cd9d8] [rid#b6d67018 / initial / redir#1](2)[perdir / var /www/domain/base/www.domain.com/htdocs/]'doc / sample-rates'->'/ doc/sample-rates'を書き換えます
127.0.0.1 --- [04 / Mar / 2013:10:50:19 --0500] [auto.domain.int/sid#b73cd9d8] [rid#b6d67018 / initial / redir#1](2)[perdir / var /www/domain/base/www.domain.com/htdocs/]'/ doc/sample-rates'を強制的に次のAPIURI-to-filenameハンドラーに渡します
127.0.0.1 --- [04 / Mar / 2013:10:50:19 --0500] [auto.domain.int/sid#b73cd9d8] [rid#b6d67018 / initial / redir#1](1)[perdir / var /www/domain/base/www.domain.com/htdocs/] / doc/sample-ratesを使用した内部リダイレクト[内部リダイレクト]


更新:auto.domain.intは、ServerAliasを使用した「メイン」www.domain.intのエイリアスです。



ありがとう、
ユージーン

4

1 に答える 1

1

RewriteCond無限の書き換えを防ぐために追加する必要があります

RewriteCond %{HTTP_HOST} ^auto\.domain\.int$
RewriteCond %{REQUEST_URI} !^/doc/sample-rates$
RewriteRule ^.*$ /doc/sample-rates [PT,L]
于 2013-03-04T16:58:49.223 に答える