0

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 にリダイレクトされます。

私は何を間違っていますか?リダイレクトは機能するのに、書き換えは機能しないのはなぜですか?

4

1 に答える 1