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

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

新規登録して質問してみよう
ただいま回答率
85.50%
リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

サーバ

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

Q&A

解決済

3回答

1169閲覧

別サイトへリダイレクト設定と、一部ディレクトリは除外したい(エックスサーバー)

coco0511

総合スコア10

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

サーバ

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

1グッド

0クリップ

投稿2020/02/19 04:53

編集2020/02/19 05:30

前提・実現したいこと

別サーバーで別ドメインでサイトをリニューアルしたのですが
一部ページのみそのまま残したいので
基本的には A.com → B.com にリダイレクトさせつつ
A.com/aaa , A.com/bbb はそのままにしておきたいです。

旧サーバーはエックスサーバーです。
エックスサーバーのコンパネ内にあるhtaccessの編集で、色々調べながら記述を書いているのですが…

トップのみリダイレクトされるのですが、下層は何も起きません。

元々入っていたhtaccessの中身

RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] SetEnvIf Request_URI ".*" WpLoginNoLimit # 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 SetEnvIf Request_URI ".*" AllowRestApi RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

追記した記述

RewriteEngine on RewriteBase / RewriteCond %{REQUEST_URI} !(^/aaa/) RewriteRule ^$ https://bbb.com [R=301,L]

何が知りたいか

自身のサーバー関連の知識がかなり低いので、この質問自体のレベルが難しいのか簡単なのか、質問する上で情報がこれで足りているのかどうかもよくわかっていないのですが…
何をどのようにすれば解決できるか、教えていただけると助かります。

以上です。
よろしくお願いいたします。

saisaichan👍を押しています

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

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

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

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

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

Y.H.

2020/02/19 05:00

タグに「.htaccess」を追加ください。
coco0511

2020/02/19 05:30

追加しました。 ご指摘ありがとうございます!
guest

回答3

0

以下でどうですか

htaccess

1# RewriteRule ^$ https://bbb.com [R=301,L] 2# ↓ 3RewriteRule ^(.*)$ https://bbb.com [R=301,L]

投稿2020/02/19 04:59

Y.H.

総合スコア7914

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

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

coco0511

2020/02/19 05:21

早速のご回答ありがとうございます。 試してみましたが・・・申し訳ありません、うまくいきませんでした。 以下、現在の挙動例です。 A.com にアクセス → B.com にリダイレクト成功 A.com/test にアクセス → A.com/test のまま(B.com にリダイレクトさせたい) A.com/aaa にアクセス → A.com/aaa のまま(これはOK)
Y.H.

2020/02/19 05:22

ブラウザのキャッシュは都度クリアして確認されてますか?
coco0511

2020/02/19 05:26

はい。 ブラウザのキャッシュは都度クリアしているのと、念のため別の人間のPCで確認してみるなどで見ています。
Y.H.

2020/02/19 05:38

# BEGIN WordPress の直前に以下2行を記載するとどうですか? RewriteCond %{REQUEST_URI} !(^/aaa/) RewriteRule ^(.*)$ https://bbb.com [R=301,L]
coco0511

2020/02/19 05:50 編集

ありがとうございます。 ご指示通り追記してみたら、下層ページもリダイレクトされました! ただ、除外させたいディレクトリもリダイレクトされるようになってしまいました。。。 以下、現在の挙動例です。 A.com にアクセス → B.com にリダイレクト成功 A.com/test にアクセス → B.com にリダイレクト成功 A.com/aaa にアクセス → B.com にリダイレクト(A.com/aaa のままにしたい) 以下、現在のhtaccessの中身です。 ```ここに言語を入力 RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] SetEnvIf Request_URI ".*" WpLoginNoLimit RewriteCond %{REQUEST_URI} !(^/aaa/) RewriteRule ^(.*)$ https://B.com [R=301,L] # 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 SetEnvIf Request_URI ".*" AllowRestApi RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] ```
Y.H.

2020/02/19 06:08 編集

https://example.com/aaa にアクセスしているからですね。。。 https://example.com/aaa/ だとリダイレクトしますか? であれば以下でどうですか? RewriteCond %{REQUEST_URI} !(^/aaa/) ↓ RewriteCond %{REQUEST_URI} !(^/(aaa$|aaa/))
coco0511

2020/02/19 06:19 編集

すみません、私の書き方が間違っていました。。。 追加で教えていただいた内容に修正した上で、以下現状です。 以下、現在の挙動例です。 A.com にアクセス → B.com にリダイレクト成功 A.com/test にアクセス → B.com にリダイレクト成功 A.com/aaa にアクセス → B.com にリダイレクト(A.com/aaa のままにしたい) A.com/aaa/ にアクセス → B.com にリダイレクト(A.com/aaa/ のままにしたい) 以下、現在のhtaccessの中身です。 === RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] SetEnvIf Request_URI ".*" WpLoginNoLimit RewriteCond %{REQUEST_URI} !(^/(aaa$|aaa/)) RewriteRule ^(.*)$ https://B.com [R=301,L] # 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 SetEnvIf Request_URI ".*" AllowRestApi RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] === 以上です。 何度も申し訳ございません。
Y.H.

2020/02/20 01:43

WordPress は必要ですか? ※ /aaa/ 配下はwordpressですか? 不要なら.htaccessは以下のみでOKなはずです。 [TOF] RewriteEngine On RewriteCond %{REQUEST_URI} !(^/(aaa$|aaa/)) RewriteRule .* https://b.example.com [R=301,L] RewriteCond %{HTTPS} !on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] [EOF] $ sudo curl -I https://localhost/ HTTP/1.1 301 Moved Permanently Location: https://b.example.com $ sudo curl -I https://localhost/aaab HTTP/1.1 301 Moved Permanently Location: https://b.example.com $ curl -I https://localhost/aaa HTTP/1.1 301 Moved Permanently Location: https://localhost/aaa/ $ sudo curl -I https://localhost/aaa/ HTTP/1.1 200 OK
coco0511

2020/02/21 05:23

お返事遅くなり申し訳ございません。 ご回答ありがとうございます!wordpressの記述削除してやってみましたが、エラーが出てしまってNGでした。 しかし、よくよく考えるとwordpressでリダイレクトのプラグインで対応すれば良いということに気が付きまして・・・そちらで解決できました。初めからそうすれば良かったものを・・・すみません。 色々とお時間いただきありがとうございました。 また機会ありましたらよろしくお願いいたします。
Y.H.

2020/02/21 05:26

お気になさらずに :-)
Y.H.

2020/02/21 05:28

この回答で解決していないので、同じことで困っている方が参照しやすいように BAはcoco0511さんの自己回答に対しての方がいいですよ。
coco0511

2020/02/21 05:38

時間を費やしていただいたお礼にと思いベストアンサーに選ばせていただきましたが 仰る通り、ここのサービスは、他におなじことで困っている人が参照できるように情報を溜める場になりますので 正確にジャッジさせていただきます。 何から何まで、ありがとうございました。
guest

0

自己解決

wordpressは残すので、普通にリダイレクトのプラグイン入れて解決

投稿2020/02/21 05:38

coco0511

総合スコア10

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

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

0

wordpressは残すので、普通にリダイレクトのプラグイン入れて解決

投稿2020/02/21 05:24

coco0511

総合スコア10

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問