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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

.htaccess

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

Q&A

解決済

1回答

457閲覧

301リダイレクトがうまくいきません

tkselfi

総合スコア3

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

.htaccess

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

0グッド

1クリップ

投稿2022/10/21 10:44

編集2022/10/21 12:02

» サイト移転に必須!!301リダイレクトの為の.htaccess書き方5選 | FASTCODING BLOG
https://fastcoding.jp/blog/all/frontend/htaccessredirect/

このサイトを見ながら転送設定をしています。

すべて階層が同じ場合は

Redirect permanent / http://kendogu.jp/

このように記述するとあったのでそれはうまくいったのですが

個別ページ
https://shop.bouguya.co.jp/esp/shop?pid=ze-0003

http://kendogu.jp/?pid=170851317

このページに転送かけようと

RewriteEngine On
RewriteRule https://shop.bouguya.co.jp/esp/shop?pid=ze-0003 $ http://kendogu.jp/?pid=170851317 [R=301,L]

このように記述したのですがうまくいきません。

どのように記述すればうまくいくのでしょうか?

★やりたいこと
https://shop.bouguya.co.jp/esp/shop?pid=ze-0003 

このような移転元URLが400件ちかくあるので
複数記述して http://kendogu.jp/

のドメイン の同じ内容のページに飛ばしたいです。

https://shop.bouguya.co.jp/esp/shop?pid=ze-0003

http://kendogu.jp/?pid=170851317

このように階層構造が異なります。

試したこと

相対パスも試しましたが駄目でした。

再度

#Redirect permanent / http://kendogu.jp/

RewriteEngine On
RewriteRule https://shop.bouguya.co.jp/ $ http://kendogu.jp/ [R=301,L]

RewriteEngine On
RewriteRule https://shop.bouguya.co.jp/esp/shop?pid=ze-0003 $ http://kendogu.jp/?pid=170851317 [R=301,L]

全階層にかける
#Redirect permanent / http://kendogu.jp/
を無効化して再設定しましたがうまくいきませんでした。

パラメーターからディレクトリに移行する場合は、リダイレクトの書き方がちがうとありましたが
今回は、パラメーターからパラメーターなのでこれであっているかわかりません。

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

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

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

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

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

guest

回答1

0

ベストアンサー

検索すればいくらでもサンプルがあるので、それらを注意深く見るとわかると思います。
RewriteRuleの左部分にホスト名やクエリーを書いた例は、何を見たのでしょう?
RewriteRuleの左部分に書くのはパス部分です。クエリー部分やホスト名は、RewriteCondで判別する必要があります。

https://shop.bouguya.co.jp/esp/shop?pid=ze-0003

http://kendogu.jp/?pid=170851317

Apache

1RewriteEngine On 2RewriteCond %{QUERY_STRING} ^pid=ze-0003$ 3RewriteRule esp/shop http://kendogu.jp/?pid=170851317 [R=301]

(ドキュメントルートの.htaccessに書く場合)

不規則な対応ルールが沢山あるなら、元サイトのプログラムでリダイレクトさせた方がいい気がします。
また、301の結果はブラウザにキャッシュされるので、試行錯誤中で、間違いなく正しくリダイレクトできることが確認できるまでは302のままの方が良いです。

投稿2022/10/21 14:51

otn

総合スコア84499

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

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

tkselfi

2022/10/24 06:09 編集

有り難うございます。 両方とも追加したら転送されました。 続けて追加して RewriteRule ^$ http://kendogu.jp/ [R=301,L] RewriteEngine On RewriteCond %{QUERY_STRING} ^pid=ze-0003$ RewriteRule esp/shop http://kendogu.jp/?pid=170851317 [R=301] RewriteEngine On RewriteCond %{QUERY_STRING} ^pid=ze-h_jyahakama_02$ RewriteRule esp/shop http://kendogu.jp/?pid=170851317 [R=301] 上記のように書いたら https://shop.bouguya.co.jp/esp/shop?pid=h_jyahakama_02 このリンクにアクセスすると404ページに飛んでしまいます。 記述がちがっているのでしょうか?
otn

2022/10/24 12:09

> 404ページに飛んでしまいます。 具体的なURLは?
tkselfi

2022/10/25 09:39 編集

いくつか設定して反映されたのですが # 転送前URL https://shop.bouguya.co.jp/esp/shop?cid=1 RewriteEngine On RewriteCond %{QUERY_STRING} ^cid=1$ RewriteRule esp/shop https://bouguya.co.jp/%e5%89%a3%e9%81%93%e3%83%9e%e3%82%b9%e3%82%af%e3%80%80kennma-%e3%82%b1%e3%83%b3%e3%83%9e/ [R=301] のように記述すると 転送先が https://bouguya.co.jp/%e5%89%a3%e9%81%93%e3%83%9e%e3%82%b9%e3%82%af%e3%80%80kennma-%e3%82%b1%e3%83%b3%e3%83%9e/ ではなく 下記URLに変わり https://bouguya.co.jp/%25e59%25a3%25e913%25e33e%25e32%25b9%25e32%25af%25e300kennma-%25e32%25b1%25e33%25b3%25e33e/?cid=1 お探しのページは見つかりません。 となります。
otn

2022/10/25 10:48 編集

1つ前の質問の > このリンクにアクセスすると404ページに飛んでしまいます。 は、解決したと言うことでしょうか? そして、次は、新たな質問ですね。 置換後文字列に%を含める場合は、オプションにNE(=URLエンコードしない)を指定して、%を\%にしてください。 (実際は直後が数字の%にだけ\を付ければ十分ですがエディタの置換で全部付ける方が簡単か。%0~%9はRewriteCondのマッチ文字列の後方参照になります。NEを付けないとそれ以外の%はURLエンコードされます) RewriteRule esp/shop https://bouguya.co.jp/%e5\%89~~~/ [NE,R=301]
tkselfi

2022/10/25 13:58

はい。 1つ前の質問の > このリンクにアクセスすると404ページに飛んでしまいます。 は、解決したと言うことでしょうか? こちらの方はおかげさまで解決致しました。
tkselfi
otn

2022/10/25 14:56

修正後に保存してないか、別のリダイレクト記述があるか。
tkselfi

2022/10/25 15:50

<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule> RewriteRule ^$ http://kendogu.jp/ [R=301,L] #転送前URL https://shop.bouguya.co.jp/esp/shop?pid=ze-0003 RewriteEngine On RewriteCond %{QUERY_STRING} ^pid=ze-0003$ RewriteRule esp/shop http://kendogu.jp/?pid=170851317 [R=301] #転送前URL https://shop.bouguya.co.jp/esp/shop?pid=h_jyahakama_02 RewriteEngine On RewriteCond %{QUERY_STRING} ^pid=h_jyahakama_02$ RewriteRule esp/shop http://kendogu.jp/?pid=171055152 [R=301] #転送前URL https://shop.bouguya.co.jp/esp/shop?cid=38 RewriteEngine On RewriteCond %{QUERY_STRING} ^cid=38$ RewriteRule esp/shop http://kendogu.jp/?pid=170774565 [R=301] #転送前URL https://shop.bouguya.co.jp/esp/shop?cid=45 RewriteEngine On RewriteCond %{QUERY_STRING} ^cid=45$ RewriteRule esp/shop http://kendogu.jp/?pid=171055174 [R=301] # 転送前URL https://shop.bouguya.co.jp/esp/shop?cid=1 RewriteEngine On RewriteCond %{QUERY_STRING} ^cid=1$ #RewriteRule esp/shop https://bouguya.co.jp/%e5%89%a3%e9%81%93%e3%83%9e%e3%82%b9%e3%82%af%e3%80%80kennma-%e3%82%b1%e3%83%b3%e3%83%9e/ [R=301] RewriteRule esp/shop https://bouguya.co.jp/\%e5\%89\%a3\%e9\%81\%93\%e3\%83\%9e\%e3\%82\%b9\%e3\%82\%af\%e3\%80\%80kennma-\%e3\%82\%b1\%e3\%83\%b3\%e3\%83\%9e/ [NE,R=301] こういう記述になっていますね。
otn

2022/10/25 16:15

他の記述を消してみれば良いのでは?
otn

2022/10/25 17:41

Apacheのバージョンは?
tkselfi
otn

2022/10/26 02:14

今までApacheで確認するのじゃ無くてテストサイトで確認していたと言うことですか? テストサイトは対応していない機能も多いし、 \ が残るなどバグがあったりするので、 うまく行ってるときは良いのですが、うまく行かないときの確認はApache実物でしましょう。
tkselfi

2022/10/28 00:13

はい。 有り難うございました<(_ _)>
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問