
さくらインターネットではPHPの設定を.htaccessではやらないでください、とのことらしいです。
ということで、サーバーのコントロールパネルからphp.iniの編集にて設定を変更します。
ここで少しハマったのが、複数の独自ドメインで運用していると
そこではコントロールパネルで設定した内容は反映されないようなのです。
どうすれば良いかと言いますと、それぞれのドキュメントルートにphp.iniをアップロードします。
ここで設定すればそのドメイン以下に内容が反映されます。

さくらインターネットではPHPの設定を.htaccessではやらないでください、とのことらしいです。
ということで、サーバーのコントロールパネルからphp.iniの編集にて設定を変更します。
ここで少しハマったのが、複数の独自ドメインで運用していると
そこではコントロールパネルで設定した内容は反映されないようなのです。
どうすれば良いかと言いますと、それぞれのドキュメントルートにphp.iniをアップロードします。
ここで設定すればそのドメイン以下に内容が反映されます。
ApacheのRewriteモジュール(mod_rewrite.c)を使用してリダイレクト(転送)させることができます。
設定はApacheの設定ファイルに記述するか、.htaccessに記述します。
以下は例として、HTTP通信をHTTPS通信に変換しています。
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] </IfModule>
Rewrite機能のON/OFFを切り替えます。
リダイレクトする条件を定義します。
URLの書き換え、転送先を指定します。
複数のオプションを指定する場合はカンマ区切り
オプション
[L] | Last(Last rule) Rewrite機能によるURL変換を終了します |
---|---|
[R=301|302] | レスポンスを返しクライアントをリダイレクトする 301:恒久的転送(リダイレクト) 302:一時的な転送(リダイレクト) |
ApacheのRewrite Moduleを使用します。
Apacheに該当のモジュールが組み込まれていることを前提にしています。
組み込まれていない場合は、Apacheを再度ビルドしなければならないので、それはまた別の機会に。
モジュールが組み込まれているか確認するには、httpd.confに以下の記述があればOK。
LoadModule rewrite_module modules/mod_rewrite.so
例)ドキュメントルートに来たアクセスで携帯キャリアだった場合、モバイル用のディレクトリへリダイレクトさせる
RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|DDIPOKET|UP.Browser|J-PHONE|Vodafone|SoftBank) RewriteRule ^$ /m/ [R]
※但し、SEO的にはよくないようだ。