質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Q&A

解決済

1回答

2859閲覧

リダイレクトの書き方を教えて下さい

mx3

総合スコア175

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

0グッド

0クリップ

投稿2015/10/31 00:25

さくらのレンタルサーバーで、初期ドメインとして、sample.sakura.ne.jpというドメインがもらえます(sampleの部分は仮です)。

現在、/home/sample/www/sample/内に配置したファイルが、sample.sakura.ne.jp/sample/で表示されるようになっており、下記の.htaccessの内容で、sample.sakura.ne.jp/sample/にアクセスがあった場合は、sample.jpにリダイレクトさせるようにしています。
(Wordpressにより自動で入るものと、www有り無しを統一も含まれます)

# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress RewriteEngine on RewriteCond %{HTTP_HOST} ^www(.sample\.jp)(:80)? [NC] RewriteRule ^(.*) http://sample.jp/$1 [R=301,L] RewriteEngine on RewriteCond %{HTTP_HOST} ^sample\.sakura\.ne\.jp(:80)?$ RewriteRule ^(.*)$ http://sample.jp/$1 [R=301,L]

この記述で、
「sample.sakura.ne.jp/sample/にアクセスがあった場合は、sample.jpにリダイレクト」
は実現できたのですが、さらに下層の、
sample.sakura.ne.jp/sample/under/
にアクセスすると、404エラーが出て、sample.jp/under/にリダイレクトしてくれません。

希望する動作は、sample.sakura.ne.jp/sample/以下のファイルにアクセスが合った場合は、すべて、
sample.jp以下の同じファイルにリダイレクトすることです。

どのように記述すれば、希望どおりの動きになりますでしょうか?
どうぞよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

404エラーとなるのは、WordPress 用のルールが先に評価されてしまうのが原因だと思います。
WordPress 用のルールの前に設定してみてください。

また、「http://sample.sakura.ne.jp/sample/XXX」→「http://sample.jp/XXX」と、パスも変換するのであれば、RewriteRule は以下のようになると思います。

RewriteCond %{HTTP_HOST} ^sample\.sakura\.ne\.jp(:80)?$ RewriteRule ^/sample/(.*)$ http://sample.jp/$1 [R=301,L]

投稿2015/10/31 03:37

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mx3

2015/11/01 00:36

回答ありがとうございます!仰るとおりWordpress用のルールの前に設定したらうまくいきまいした!ただ、パスも変換するのであれば...という点ですが、私のコードのままでもうまくいきました。両者の違いが分かるほどに知識がないのですが、うまくいくならそれでもいいという認識で大丈夫でしょうか?? ちなみに、説明不足で申し訳ありませんが、.htaccessの設置場所は /home/sample/www/sample/.htaccess です。
TaichiYanagiya

2015/11/01 14:12

すみません、さくらVPS かと推測し、httpd.conf で検証していました。 .htaccess で所望の結果が得られたのであれば、それでいいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問