質問: お世話になります。htaccessの書き方について教えてください。 さくらインターネットの初期ドメイン(特定ディレクトリのみ)から独自ドメインへのリダイレクトをかけたいのですが、下記書き方ですとうまくいきません。設置場所や書き方など、どなたかご教示いただけますでしょうか。先程運用始めたのですが、初期ドメインにもアクセスできて不都合を生じています。 さくらの「マルチドメインの対象のフォルダ」の指定はshoki2/で登録済みなので、独自ドメインへはアクセスできます。 どうぞ、よろしくお願いいたします。 ``` 初期ドメイン:abcd.sakura.ne.jp/ 初期ディレクトリ:abcd.sakura.ne.jp/shoki2/ ``` ↓ ``` リダイレクト先(独自ドメイン):example.com/ ``` htaccess設置場所:shoki2/のディレクトリに下記設置してますが、いずれもうまくいきません。 ``` RewriteCond %{HTTP_HOST} ^(abcd\.sakura\.ne.jp/shoki2/)(:80)? RewriteRule ^(.*) http://example.com/$1 [R=301,L] RewriteEngine On RewriteCond %{HTTP_HOST} ^(www\.)?abcd\.sakura\.ne\.jp/shoki2/$ [NC] RewriteRule .* http://example.com/%{REQUEST_URI} [R=301,L] ``` 特定ディレクトリを含む場合の書き方が特によくわかりません。 どうぞ、よろしくお願いいたします。 下記、ご回答ありがとうございました。転送できました。
回答: `http://abcd.sakura.ne.jp/shoki2/hogehoge/` を `http://example.com/hogehoge/` のようにリダイレクトさせるということでしょうか? `HTTP_HOST` にパスは入らないのでその RewriteCond だとマッチしません。 特定のディレクトリでリダイレクトさせるのであれば、その特定のディレクトリに .htaccess を配置するほうが良いです。 **shoki2/ ディレクトリの .htaccess** ``` RewriteEngine on RewriteCond %{HTTP_HOST} ^abcd\.sakura\.ne\.jp(:80)?$ RewriteRule ^(.*)$ http://example.com/$1 [R=301,L] ``` なんらかの事情で shoki2/ ディレクトリに .htaccess が配置できないのであれば RewriteRule の方にディレクトリ名を指定します。 **ドキュメントルートのの .htaccess** ``` RewriteEngine on RewriteCond %{HTTP_HOST} ^abcd\.sakura\.ne\.jp(:80)?$ RewriteRule ^shoki2/(.*)$ http://example.com/$1 [R=301,L] ```