mod_rewrite と codeigniter で apache を使用してルーティングを行っています。
私のウェブサイトを指している 2 つの別個の (ワイルドカード) ドメインがあります。たとえば、*.foo.com と *.bar.com です。
*.foo.com/somepath を *.foo.com/index.php/somepath に書き換える必要があります
*.bar.com.somepath は *.bar.com/index.php/bar/somepath に書き換える必要があります
これは私の .htaccess です:
RewriteEngine on
RewriteCond %{HTTP_HOST} [^.]{3}\.bar\.com [NC]
RewriteCond $1 !(index\.php|assets|favicon|bar)
RewriteRule ^(.*)$ /index.php/pzdossier/$1 [L]
RewriteCond $1 !(index\.php|assets|favicon)
RewriteRule ^(.*)$ /index.php/$1 [L]
これにより、dev.foo.com/whatever にアクセスすると正しい結果が得られます。
しかし、dev.bar.com/whatever にアクセスすると、pzdossier の代わりに dev.bar.com/index.php/whatever に書き換えられます。
私が変われば
RewriteRule ^(.*)$ /index.php/pzdossier/$1 [L]
に
RewriteRule ^(.*)$ /index.php/pzdossier/$1 [L,R=302]
動作し、/index.php/pzdossier/whatever にリダイレクトされます。
私は何を間違っていますか?リダイレクトは機能するのに、書き換えは機能しないのはなぜですか?