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

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

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

ドメインとは本来、領域や範囲の意味を持ち、インターネット上では特定の部分領域を指します。ネットワークやコンピュータの識別に利用され、所得することでホームページを公開したり、メールアドレスを作成できます。

WooCommerce

WooCommerceは、2011年にリリースされたWordPressのためのECプラグインです。ECサイトに必要な一連の機能を簡単に導入できる上、柔軟なカスタマイズをすることも可能です。

WordPress

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

リダイレクト

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

.htaccess

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

Q&A

解決済

2回答

2334閲覧

htaccessにより特定のディレクトリのみリダイレクトさせたい

mo__fumi

総合スコア13

ドメイン

ドメインとは本来、領域や範囲の意味を持ち、インターネット上では特定の部分領域を指します。ネットワークやコンピュータの識別に利用され、所得することでホームページを公開したり、メールアドレスを作成できます。

WooCommerce

WooCommerceは、2011年にリリースされたWordPressのためのECプラグインです。ECサイトに必要な一連の機能を簡単に導入できる上、柔軟なカスタマイズをすることも可能です。

WordPress

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

リダイレクト

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

.htaccess

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

0グッド

1クリップ

投稿2020/07/10 22:24

Wordpressのドメインを変更後、htaccessによりECサイト(WooCommerce)の部分だけをリダイレクトさせたく、実装しようとしています。

・旧ドメイン https://old-domain.com
・新ドメイン https://new-domain.com

基本的には全てのページを旧のままにしておきたいのですが、
・shop
・product
・cart
・checkout
上記のディレクトリのみ新ドメインにリダイレクトしたいです。

自分で色々実装してみたのですが、上手くリダイレクトされずお助けいただきたいです。
最終的に以下のような実装を施し、上手くいっておりません。

▼旧ドメインのhtaccess(shop, product, cart, checkoutディレクトリを新ドメインにリダイレクト)

RewriteEngine on RewriteBase / RewriteRule ^shop(.*)$ https://new-domain.com/shop$1 [R=301,L] RewriteRule ^product(.*)$ https://new-domain.com/product$1 [R=301,L] RewriteRule ^cart(.*)$ https://new-domain.com/cart$1 [R=301,L] RewriteRule ^checkout(.*)$ https://new-domain.com/checkout$1 [R=301,L]

▼新ドメインのhtaccess(shop, product, cart, checkoutディレクトリ__以外__を旧ドメインにリダイレクト)

RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !^/shop/$ RewriteCond %{REQUEST_URI} !^/product/$ RewriteCond %{REQUEST_URI} !^/cart/$ RewriteCond %{REQUEST_URI} !^/checkout/$ RewriteRule (.*) https://old-domain.com [R=301,L]

どうぞご教示よろしくお願い致します。

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

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

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

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

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

otn

2020/07/10 22:52

> 上手くいっておりません。 どんな状況でしょうか?(否定文を使わずに書いてください)
mo__fumi

2020/07/11 03:46

一瞬リダイレクト先に飛んだかのようになるのですがすぐもともとのトップページに戻ってしまいます。
otn

2020/07/11 10:33

> 一瞬リダイレクト先に飛んだかのようになる これの具体的な現象を書いてください(何を見てそう言っているか)
mo__fumi

2020/07/12 17:45

こちら自己解決いたしました。
guest

回答2

0

新ドメインの .htaccess で、REQUEST_URI の正規表現で $ を付けているので、URL パス「/shop/」 はマッチするけれど、「/shop/foo.html」はマッチせず、(再)リダイレクトしてしまうのだと思います。

投稿2020/07/11 12:45

TaichiYanagiya

総合スコア12146

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

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

mo__fumi

2020/07/12 17:22

ご返答ありがとうございます! おっしゃるように$を消して再度試してみましたが、new-domainのトップからold-domainのshopページに飛ぼうとすると、一瞬飛んだかのようになるものの(URLは表示される)すぐにnew-domainのトップページに戻されてしまいました。。
mo__fumi

2020/07/12 17:45

上記で自己解決方書いたのですが、TaichiYanagiyaさんの助言もあり無事解決いたしました!!ありがとうございました^^
guest

0

自己解決

こちら自己解決いたしました。以下htaccessの記述です。

▼old-domain.com

RewriteEngine on RewriteBase / RewriteRule ^shop(.*)$ https://new-domain.com/shop$1 [R=301,L] RewriteRule ^product(.*)$ https://new-domain.com/product$1 [R=301,L] RewriteRule ^cart(.*)$ https://new-domain.com/cart$1 [R=301,L] RewriteRule ^checkout(.*)$ https://new-domain.com/checkout$1 [R=301,L]

▼new-domain.com

RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !(^/shop/) RewriteCond %{REQUEST_URI} !(^/product/) RewriteCond %{REQUEST_URI} !(^/cart/) RewriteCond %{REQUEST_URI} !(^/checkout/) RewriteCond %{REQUEST_URI} !(^/checkout/order-received/) RewriteRule ^$ https://old-domain.com/ [R=301,L]

コメントくださった方々ありがとうございました!

投稿2020/07/12 17:44

mo__fumi

総合スコア13

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問