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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

509閲覧

サイトリニューアル301リダイレクトが一部転送されない

sazami

総合スコア18

.htaccess

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2019/04/06 13:19

発生している問題

サイトリニューアルに伴い.htaccessを使って301リダイレクトを行いたいのですが、一部ページでうまくできません。
リニューアル後のページは旧ページと構成が全く違うため、ドメイン全体のリダイレクトができないので、各個別ページを各該当ページに
転送する設定を行っております。

<問題1>
旧ページは素人の方が作ったのか?ファイル名に下記のように複数余分なスペースが入っており、このようなスペースの入った物だけが設定をしても旧ページが表示されてしまい、転送されません。
例)
service 1.html
service 5 - 2.html

<問題2>
旧トップページURLが
http://www.oyapage.com/kopage/

と、index.htmlなしのサブディレクトリ名のみがURLとして検索エンジンでトップ表示になっており、index.htmlはリダイレクトできているのですが、このサブディレクトリ名のみのURLのリダイレクトがうまくできません。
http://oyapageは親会社のホームページが存在しており、今回子会社(kopage)部分を新たにドメインを取得して移転した状況です。

試したソースコード

htaccess

1RewriteEngine on 2RewriteRule http://www.oyapage.com/kopage/$ https://newkopage.com/$1 [R=301,L] 3RewriteRule service 1.html$ https://newkopage.com/service.html [R=301,L] 4RewriteRule service 5 - 2.html$ https://newkopage.com/service.html [R=301,L]

補足情報

とりあえず、現在は仕方なく旧ページに下記設定でジャンプさせています。
<meta http-equiv="refresh" content="0;URL=https://newkopage.com">

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

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

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

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

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

TaichiYanagiya

2019/04/07 14:41

「service\ 1.html$」「service\ 5\ -\ 2.html$」のように、バックスラッシュ+スペースでダメでしょうか?
sazami

2019/04/07 15:31

ありがとうございます!リダイレクトできました。助かりました。 問題2のトップページリダイレクトについては、何か方法ございますでしょうか?
guest

回答1

0

ベストアンサー

RewriteRule の 1つ目の引数は URL ではなく、パスですので、以下のようになると思います。

RewriteEngine on RewriteRule ^kopage/$ https://newkopage.com/ [R=301,L] RewriteRule service\ 1.html$ https://newkopage.com/service.html [R=301,L] RewriteRule service\ 5\ -\ 2.html$ https://newkopage.com/service.html [R=301,L]

リダイレクト先の「$1」が「/kopage/」以下のパスを意図しているのであれば、以下のように、括弧と正規表現で設定します。

RewriteEngine on RewriteRule ^kopage/(.*)$ https://newkopage.com/$1 [R=301,L] RewriteRule service\ 1.html$ https://newkopage.com/service.html [R=301,L] RewriteRule service\ 5\ -\ 2.html$ https://newkopage.com/service.html [R=301,L]

###(2019/04/09 09:06) 追記
.htaccess が /kopage/.htaccess にあるのなら、以下で。

RewriteEngine on RewriteRule ^$ https://newkopage.com/ [R=301,L] RewriteRule service\ 1.html$ https://newkopage.com/service.html [R=301,L] RewriteRule service\ 5\ -\ 2.html$ https://newkopage.com/service.html [R=301,L]

投稿2019/04/08 13:23

編集2019/04/09 00:07
TaichiYanagiya

総合スコア12146

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

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

sazami

2019/04/08 16:02

TaichiYanagiya様、ご回答ありがとうございます。 ただ、記載いただいた物で試してみましたが、トップページについてはリダイレクトされませんでした。 下2つのservice.htmlへのリダイレクトはできております。 リダイレクト先の「$1」...については、申し訳ございません。色々試していた物がそのままになっておりました。 やりたい事としては http://www.oyapage.com/kopage/https://newkopage.com/ にリダイレクト 旧ページサイト構成 www |-kopage | |-.htaccess  ←ここにリダイレクト設定を記載 | |-index.html ←旧子ページトップ | |-〇〇.html  ←以下旧子ページ関連ページ | |-index.html   ←親ページトップ |-〇〇.html    ←以下親ページ関連ページ のようになっております。 試しにwww直下にも設定してみましたが、リダイレクトされませんでした。 引き続きアドバイスを頂けると助かります。
sazami

2019/04/09 01:11

ありがとうございました。追記していただいた内容で、無事トップページのリダイレクトができました。 適切なアドバイス、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問