私はCakePHPを使用していますが、すべてのhttp://mywebsite.comをwww.mywebsite.comにリダイレクトするために、このコードをapp / webroot/.htaccessに追加しました。
<IfModule mod_rewrite.c>
RewriteEngine On
##########added lines
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteCond %{HTTP_HOST} !^localhost [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
##########end of adding
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
</IfModule>
今、私は大きな問題を抱えています。ログインフォームは機能しなくなりました。POST情報をhttp://mywebsite.com/loginに送信しようとし、.htaccessでwww.mywebsite.com/loginにリダイレクトされますが、POSTデータが欠落しているためだと思います。
どうすればこれを解決できますか?
CakePHPでは、ユーザーがログインに成功したときにこのリダイレクトを使用しています。
$this->redirect('/posts');
**更新:この他のリダイレクトでも試しましたが、結果はありません:
$this->redirect(array('controller'=>'posts', 'action' => 'index'));
ありがとう。