🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

リダイレクト

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

.htaccess

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

Q&A

1回答

2178閲覧

サブドメインありからなしへの301リダイレクトする際の除外設定

anzaaai

総合スコア4

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

リダイレクト

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

.htaccess

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

0グッド

0クリップ

投稿2019/11/20 14:46

編集2019/11/20 15:00

前提・実現したいこと

wwwなしURLとhogeサブドメインつきURLがあります。
両URLは同じルートディレクトリに設定し、wordpressのサイトネットワークで管理しています。
.htaccessを使用して、hogeサブドメインサイトから、/fuga/ディレクトリを除外してhttp://sample.jp/に301リダイレクトをしたいです。

例1:http://hoge.sample.jp → http://sample.jp リダイレクトする
例2:http://hoge.sample.jp/fuga/ → http://hoge.sample.jp/fuga/ リダイレクトしない

該当のソースコード

htaccess

1RewriteEngine On 2RewriteBase / 3 4RewriteCond %{HTTP_HOST} ^hoge.sample.jp$ 5RewriteCond %{REQUEST_URI} !^hoge.sample.jp/fuga/ 6RewriteRule ^(.*)$ http://sample.jp/$1 [R=301,L]

試したこと

前述の、
例1:http://hoge.sample.jp → http://sample.jp
については1行目と3行目のコードで動作を確認しています。

実現したい、
例2:http://hoge.sample.jp/fuga/ → http://hoge.sample.jp/fuga/
については、現在は以下のようにリダイレクトしてしまいます。
例2:http://hoge.sample.jp/fuga/ → http://sample.jp/fuga/

特定のURLのみリダイレクトしないようにするにはどのようにすればよいか、ご回答いただけますと幸いです。

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

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

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

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

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

Y.H.

2019/11/20 21:26

例示用のドメインにはexample.comなど例示用に予約されている物に変更ください。 sample.jpは実在するドメインです。
munokura

2019/11/26 03:37

Apacheのバージョンによってhtaccessで動く書き方が変わると聞いています。 バージョンを追記したほうが良いと思います。
guest

回答1

0

htaccess

1# RewriteCond %{REQUEST_URI} !^hoge.example.jp/fuga/ 2# ↓ 3RewriteCond %{REQUEST_URI} !^/fuga/

検証

bash

1$ cat /var/www/html/.htaccess 2RewriteEngine On 3RewriteBase / 4 5RewriteCond %{HTTP_HOST} ^hoge.example.jp$ 6RewriteCond %{REQUEST_URI} !^/fuga/ 7RewriteRule ^(.*)$ http://example.jp/$1 [R=301,L] 8 9$ telnet localhost 80 10Trying 127.0.0.1... 11Connected to localhost. 12Escape character is '^]'. 13HEAD / HTTP/1.1 14Host: hoge.example.jp 15 16HTTP/1.1 301 Moved Permanently 17Date: Thu, 21 Nov 2019 00:28:21 GMT 18Server: Apache/2.4.29 (Ubuntu) 19Location: http://example.jp/ 20Content-Type: text/html; charset=iso-8859-1 21 22$ telnet localhost 80 23Trying 127.0.0.1... 24Connected to localhost. 25Escape character is '^]'. 26HEAD /fuga/ HTTP/1.1 27Host: hoge.example.jp 28 29HTTP/1.1 200 OK 30Date: Thu, 21 Nov 2019 00:28:07 GMT 31Server: Apache/2.4.29 (Ubuntu) 32Last-Modified: Thu, 21 Nov 2019 00:18:51 GMT 33ETag: "4a-597d03de5b952" 34Accept-Ranges: bytes 35Content-Length: 74 36Vary: Accept-Encoding 37Content-Type: text/html 38 39$ telnet localhost 80 40Trying 127.0.0.1... 41Connected to localhost. 42Escape character is '^]'. 43HEAD /fuga/fuga.html HTTP/1.1 44Host: hoge.example.jp 45 46HTTP/1.1 404 Not Found 47Date: Thu, 21 Nov 2019 00:29:12 GMT 48Server: Apache/2.4.29 (Ubuntu) 49Content-Type: text/html; charset=iso-8859-1 50 51$

投稿2019/11/20 21:23

編集2019/11/21 00:32
Y.H.

総合スコア7918

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

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

anzaaai

2019/11/21 08:30

回答ありがとうございました。 同内容に試してみましたが、私の環境では解決しませんでした。 他の方法も試してみたいと思います。
Y.H.

2019/11/21 08:33

ブラウザのキャッシュはクリアして確認してくださいね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問