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

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

新規登録して質問してみよう
ただいま回答率
85.31%
.htaccess

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

Q&A

解決済

1回答

1115閲覧

.htaccessでのリダイレクトでサブドメインを除外したい

musashidayo

総合スコア63

.htaccess

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

0グッド

0クリップ

投稿2023/12/04 03:47

実現したいこと

現在xserverで運用中のexample.comというドメインがあり、sub.example.comというサブドメインでwordpressサイトを運用中です。
ここで、example.comから特定のURL(https://target.com?ref_=aaa)へリダイレクトをかける処理を行っているのですが、上記のサブドメインのみ除外したいです。

該当のソースコード

htaccess

1<IfModule mod_rewrite.c> 2RewriteEngine On 3RewriteCond %{HTTP_HOST} !^sub\.example\.com$ 4RewriteRule ^(.*)$ https://target.com?ref_=aaa$1 [R=301,L] 5</IfModule>

試したこと

https://teratail.com/questions/9o2r28i2be0r7p

上記を参考にソースコードのように試してみたのですが、サブドメインにもリダイレクトがかかってしまいました。

補足情報(FW/ツールのバージョンなど)

サーバー:xserver

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

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

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

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

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

Eggpan

2023/12/04 08:20

サブドメインの場合、通常はDocumentRootが異なると思いますが、設定などによって同じにしているのでしょうか? DocumentRootを分けて、サブドメイン無しの場合だけリダイレクトする、sub.example.comでは何もしないほうがシンプルになるのかなと思います。
otn

2023/12/04 14:16

wordpressを使っているということは、他にリライト定義があるのでは? 「質問に書いてない、別のリライト定義の影響でした」というがっかりするオチがよくあります。 あと、301リダイレクトを行っているので、リダイレクト定義を修正する都度、ブラウザのキャッシュクリアが必要ですがやってますか?「以前のリダイレクトがキャッシュされてました」というのもありますね。 あと、Eggpanさんのコメントにもありますが、ドキュメントルートがどうなっていて、.htaccessを何処に置いているのかも重要です。あるいは、特定ホストだけに適用したい場合は、.htaccessに書くのでなく、<Virtualhost ~~>~~</virtualhost>に書くのも簡明です。
musashidayo

2023/12/05 02:26

ありがとうございます 構造は ルート/ ー.htaccess<--今回はこちらに記述 ーsub.example.com/.htaccess sub.example.com/.htaccessの中身は下記になっています ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] RewriteCond %{HTTP_HOST} ^www.sub.example\.com$ RewriteRule ^(.*)$ https://sub.example.com/$1 [R=301,L] RewriteCond %{THE_REQUEST} ^.*/index.(html|php) RewriteRule ^(.*)index.(html|php)$ http://%{HTTP_HOST}/$1 [R=301,L] </IfModule> # BEGIN WordPress # "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は # 動的に生成され、WordPress フィルターによってのみ修正が可能です。 # これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。 <IfModule mod_rewrite.c> RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー ブラウザのキャッシュのほうですが切っているのでそちらの問題では無いのかなと思っています。
otn

2023/12/05 02:49

> ブラウザのキャッシュのほうですが切っているのでそちらの問題では無いのかなと思っています。 ブラウザ開発者ツールの「キャッシュを無効化」ですか? それって、お使いの環境で301リダイレクトにも効くことを確認済みでしょうか?少なくとも以前は効かなかった(301はキャッシュされる)です。
otn

2023/12/05 14:05

> ブラウザのキャッシュのほうですが切っている は、普通はブラウザの設定でキャッシュを無効にしていることを意味します。事実は正確に書きましょう。普通に事実を書けば良いだけなのですが。 > サブドメインにもリダイレクトがかかってしまいました。 とは、具体的にどういうURLで、どういうURLにリダイレクトされましたか? また、それは具体的にどんな方法で確認して、どういう確認結果を見ましたか? > ルート/ > ー.htaccess<--今回はこちらに記述 > ーsub.example.com/.htaccess > sub.example.com/.htaccessの中身は下記になっています の意味もよくわかりません。素直に見ると、 example.comのドキュメントルートが「ルート/」で、そのディレクトリに質問文に書いてある内容の.htaccessが置いてあり、その子の「ルート/sub.example.com」がsub.example.comのドキュメントルートで、そこにコメントに書いてある.htaccessがあるという風に読めますが、合ってますか? それともsub.example.comのドキュメントルートもexample.comと同じく「ルート/」なのでしょうか?
guest

回答1

0

自己解決

皆様コメントありがとうございました。
試行錯誤した結果、ルートディレクトリの.htaccessに下記の記述をしたところサブドメイン運用しているwordpressサイトにはリダイレクトがかからず思ったような挙動になりました。

htaccess

1SetEnvIf Request_URI ".*" Ngx_Cache_NoCacheMode=off 2SetEnvIf Request_URI ".*" Ngx_Cache_AllCacheMode 3 4<IfModule mod_rewrite.c> 5RewriteEngine On 6RewriteCond %{HTTPS} off 7RewriteRule ^(.*)$ https://example.com/$1 [R=301,L] 8 9RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 10RewriteRule ^(.*)$ https://%1/$1 [R=301,L] 11 12RewriteCond %{HTTPS} on 13RewriteRule ^(.*)$ https://target.com?ref_=aaa$1 [L,R] 14 15RewriteCond %{HTTP_HOST} sub\.example\.com 16RewriteCond %{HTTP_HOST} www\.sub\.example\.com 17RewriteRule ^(.*)$ https://target.com?ref_=aaa$1 [R=301,L] 18</IfModule>

投稿2023/12/12 02:07

編集2023/12/12 02:09
musashidayo

総合スコア63

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問