AB型技術系 主に備忘録

ほぼプログラム関連の備忘録

RewriteRule使って表示URLは変えずに転送する方法

ネットオウルのファイアーバードでPHPやらMySQLやら使って
いろいろとしょうもうないサイトを運営しています。
年間6,480 円かかりますが、サブドメイン無制限なので容量の許すかぎりサイトを量産することができます。

 現在はwww無しのURLなので、www付けると

「The requested URL / was not found on this server.」

となりアクセスできません。

www付けてもアクセスできること、さらにURLはwww付けたままに

しようと思いいろいろ試行錯誤した結果が以下です。

  1. www付きのサブドメインを作る
  2. サーバー上にwww有のディレクトリができる
  3. 下記.htaccesswww有のディレクトリ直下に作る

 .htaccess

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.aaa\.bbb\.com)(:80)? [NC]
RewriteRule ^(.*) http://aaa.bbb.com/$1 [R=301,P]
</IfModule>

http://www.aaa.bbb.comというURLならhttp://aaa.bbb.comに飛ばす設定

RewriteRuleの引数のPが重要
この設定によりブラウザの表示URLを変えずにちゃんと表示されるようになりました

後、.htaccessUTF-8のBOMなしで保存しとかないと

「500 Internal Server Error

になっちゃいますよ