• 締切済み

301リダイレクトの設定に関して

プレーンなhtmlで構成してたサイトを、WordPressでリニューアルしました。 その際にURLが変更になる為、「.htaccessファイル」にて301リダイレクトの設定を行いましたが、一部のページで404エラーが出てしまいます。 質問 RewriteEngine On RewriteRule /information/aaaa.html /information-aa/$1 [R=301,L] とした場合、問題無くリダイレクトが出来ています。 下記のように記述した場合,404エラーが出てしまいます。 RewriteRule /information/form.html /information-contact/form/$1 [R=301,L] またはフルパスでの表記も確認しました。 RewriteRule /information/form.html http://www.example.com//information-contact/form/$1 [R=301,L] 上記設定した場合URLは下記の通りになり、404エラーが出てします。 http://www.example.com/information-contact/form.html 実際実在しないページのアドレスに書き換わっています。 希望は http://www.example.com/information/form.html から http://www.example.com/information-contact/form/ です。 ディレクトリ「information」は「information-contact」と書き換わっていますが、「form.html」の部分が書き換わっていません。 ちなみに Redirect /information/form.html /information-contact/form/ 上記のように記述した場合も,同じ結果になります。 リダイレクト先のディレクトリ名の変更、ファイル名に拡張子が無い場合,実際にどのように記載すれば良いのでしょうか。アドバイスを頂ければ幸いです。 利用しているレンタルサーバ WebARENA 共有サーバー(SuiteX)を契約 WordPress のインストールは、最新版を手動でインストールして利用しています。 参考ページURL WebARENA お客様サポート「[ホームページ] .htaccess」 http://web.arena.ne.jp/support/suite1/manual/www/htaccess.html

みんなの回答

  • t_ohta
  • ベストアンサー率38% (5081/13277)
回答No.1

RewriteRule の変換後のアドレスに $1 を指定しているからだと思います。

nori_hiro
質問者

補足

アドバイスをありがとうございます。 確認して見ました。 RewriteRule /information/form.html /information-contact/form/ [R=301,L] と「$1」を削除しましたがリダイレクトは404エラーになりました。

関連するQ&A

  • リダイレクトの記述方法について教えてください。

    (1)から(2)のURLへリダイレクトする.htaccessの記述方法を教えてください。 (1) http://www.example.com/wordpress/ と http://www.example.com/wordpress           ↓ (2) http://www.example.com/blog/ 但し、リダイレクトしたいのは上記URLだけです。 (1)のURL配下にある個別記事 http://www.exapmle.com/wordpress/?p=123 はリダイレクトしません。 自分で.htaccessに記述したところ、(1)の配下の個別記事までリダイレクトしたため、慌てて削除したところです。 よろしくお願いします。

    • 締切済み
    • CSS
  • htaccessのリダイレクト記述

    .htaccess リダイレクトについて教えてください。 今まで、WordPressをサブドメインで使っていましたが、新しいドメインに移転します。 今までのURLは、http://old.com/wp/ 新しいURLは、http://new.com となります。 それぞれの記事が検索エンジンに掲載されいますので、それぞれの記事がリダイレクトでそれぞれの記事を表示することが希望です。下記の記述で正しいでしょうか? RewriteEngine on RewriteBase /old.com/wp/ RewriteRule ^$ http://new.com/ [R=301,L] RewriteRule ^(.+)$ http://new.com/$1 [R=301,L] 宜しくお願いいたします。

    • ベストアンサー
    • HTML
  • .htaccessのリダイレクトについて

    .htaccessで以下のようにURLをリダイレクトさせたいのですが、調べてもなかなかこのようなサンプルがなく、悩んでいます。 以下のようなURLにアクセスした場合 example.com/public example.com/public/ example.com/public/pageA example.com/public/pageB example.com/public/pageB/pageC 以下のように、publicを削除したURLにリダイレクトしたいです。 example.com example.com/ example.com/pageA example.com/pageB example.com/pageB/pageC 上記の設定は.htaccessのRewriteRuleの設定で可能でしょうか? どなたか詳しい方がいたら教えていただきたいです。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • 301リダイレクトの方法について教えてください。

    301リダイレクトの方法について教えてください。 htaccess設定については初心者です。 1.http://○○.com/kanagawa/から、http://○○.com/kanagawa.htmlへ、 2.http://○○.com/kanagawaから、http://○○.com/kanagawa.htmlへ、 それぞれ301リダイレクトをさせたいのです。 htaccessで、「mod_Rewrite」設定が必要になりますが、 1については、 # kanagawaファイルの場合/にリライト RewriteCond %{THE_REQUEST} ^.*/kanagawa RewriteRule ^(.*)kanagawa$ http://○○.com/kanagawa.html [R=301,L] でリダイレクトができるようになりました。 しかし、2については、 どのように設定するのでしょうか? ちなみに、 RewriteCond %{THE_REQUEST} ^.*/kanagawa/ RewriteRule ^(.*)kanagawa/$ http://○○.com/kanagawa.html [R=301,L] こんな感じにしてみましたが、リダイレクトできませんでした。 方法ご存じの方、おしえてください。

  • 301リダイレクトについて

    aaa.jpとaaa.comというページがあります。 条件はドメインが変わって、複数のそれぞれのページを個別にリダイレクトさせます。 (aaa.jp/~.htmlの複数のページをaaa.com/~.htmlのページに個別にリダイレクト) 以下のhtaccessの記述で間違いないでしょうか? 間違っていた場合正しい記述方法を教えていただければ幸いです。 RewriteEngine on RewriteBase / RewriteRule aaa.jp/123.html http://aaa.com/abc.html [R=301,L] RewriteRule aaa.jp/124.html http://aaa.com/aba.html [R=301,L] 以下 直ぐ上のような複数の記述が続きます。 初心者ですので的外れなことを記載しているかもしれません。 その点はご容赦ください。

    • 締切済み
    • SEO
  • 301リダイレクトの設定について

    htmlコーディングの知識は多少あるのですが、サーバーの設定については全くの初心者です。 .htaccessリダイレクトの方法がわからないのでお教えください。 旧サイトが「https://www.sample.com/aaa/bbb/」にあったのですが、新しいサイトを「https://www.sample.com/ccc/」に作成しました。新サイトと旧サイトのディレクトリの構成はまったく異なります。 旧サイト全体に301リダイレクトを設定して旧サイトのどのページにアクセスしても新サイトのTOPページに移動させたいのですが、.htaccessの書き方がわかりません。 Googleでいろいろ検索し、下記のように記述した.htaccessファイルをbbbディレクトリに格納してみましたが、うまくいきませんでした。 <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^aaa/bbb/(.*) /ccc/$1 [R=301,L] </IfModule> また、以下ではInternal Server Errorになりました。 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^(www.sample.com)(:80)? [NC] Redirect permanent /aaa/bbb/ RewriteRule ^(.*) https://www.sample.com/ccc/$1 [R=301,L] </IfModule> アドバイスをいただけないでしょうか。 よろしくお願いいたします。

  • SSLのリダイレクトについて

    sslのリダイレクトの作業を急いでやらないといけないのですが、sslに関しては全くの初心者なので調べながらいろいろやってみましたがどうしてもうまくいかず困っています。。 Wordpressでサイトを作成していてドメイン直下の.htaccessにリダイレクトの記述をしています。 サーバーはGMOのiCLUSTAで、sslはジオトラストです。 http://○○○.jp/ にアクセスした場合に、 https://ssl.○○○.jp/ へリダイレクトされるようにしたいです。 .htaccessの記述内容です # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress RewriteEngine on RewriteCond %{HTTPS} on RewriteRule ^(.*)$ https://ssl.○○○.jp/$1 [R=301,L] この記述をしていますが、リダイレクトされたりされなかったりの不安定な状態です。 されないことの方が多いのでどの条件で動いているのかがわかりません。 RewriteCond %{HTTPS} on を、 RewriteCond %{HTTPS} off にするとリダイレクトされますが、処理がループされていますという表示が出てしまいます。 どのような記述をすればうまくいくのでしょうか?

  • .htaccessでの301リダイレクトについて

    .htaccessでの301リダイレクトについて教えてください。 1つのサイトを閉鎖し新しいサイトと一緒にしたいと思っています。 .htaccessで301リダイレクトを行うと思い 下記のような記述を行いましたが上の4つはリダイレクトされますが 下の2つがリダイレクトされません。 色々と試してはいますがどう直せばいいのか分からず困っています。 RewriteRule ^whatis.php$ https://hoge.jp/whatis.php [R=301,L] RewriteRule ^help/$ https://hoge.jp/faq.php [R=301,L] RewriteRule ^category/$ https://hoge.jp/category.php [R=301,L] RewriteRule ^inquiry/$ https://hoge.jp/inquiry/ [R=301,L] RewriteRule ^category/details.php?category=aaaaa$ https://hoge.jp/category/?category=aaaaa [R=301,L] RewriteRule ^category2/?category=aaaaa$ https://hoge.jp/category/search.php?category=aaaaa [R=301,L] よろしくお願い致します。

  • 動的URLから静的URLへのリダイレクト

    htaccessで動的URLを静的URLに301リダイレクトしたいのですが、うまくいきません。 どのように記述すればよいでしょうか? 静的URL同士のリダイレクトしか分からず、困っています。 よろしくお願いします。 http://example.com/yyy.cgi?cate=1&page=1 リダイレクト先 http://example.com/zzz.htm

  • .htaccessでのRewriteRuleが下層ディレクトリに効かない

    現在一番上の階層にドメインを適用しており、そこでwww有りと無しを統一する為、.htaccessに以下のように記述しています。 RewriteEngine on RewriteCond %{HTTP_HOST} ^(www\.example\.com)(:80)? RewriteRule ^(.*) http://example.com/$1 [R=301,L] これで、http://www.example.com/ は http://example.com へ、 下層ディレクトリの http://www.example.com/sample/ は http://example.com/sample/ と、 上記のようにリダイレクトしてくれますが、下層ディレクトリの中に掲示板スクリプトを設置しているものがありまして、 そのディレクトリ(/bbs)の中にも、スクリプトのURL書き換えの為のRewriteRuleを記述した.htaccessを設置しています。 ※このディレクトリ(/bbs)のRewriteRuleには、RewriteCond %{HTTP_HOST} は記述していません。 ここで困った事に、http://www.example.com/bbs/ にアクセスすると、そのままwwwが付いたURLがそのままアドレスバーに表示され、 www無し(http://example.com/bbs/)にリダイレクトしてくれません。 .htaccessを設置していない(RewriteRuleを記述していない)下層ディレクトリは、上層ディレクトリに記述しているRewriteRuleの継承をしてくれる為、http://example.com/sample/ のように表示(リダイレクト)されますが、上記の/bbs ディレクトリなどに対しても、上層のRewriteRule を引き継げる方法は無いでしょうか? 色々調べて、RewriteOptions inherit というのも見つけたのですが、/bbs ディレクトリの.htaccessに記述しても、 トップページ(http://example.com/)へリダイレクトされてしまい、どうすれば良いか悩んでおります。 環境は共用レンタルサーバで、 Apacheのバージョンは1.3.39 (Unix)。 httpd.confは自分では設定する事が出来ません。 上層ディレクトリのRewriteRuleを引き継げない場合、/bbs ディレクトリの.htaccessにはどのように記述すれば www無し(http://example.com/bbs/)になるのかでも勿論構いません。 もし良い方法がありましたらご教示頂けますと幸いです。 宜しくお願いいたします。

    • ベストアンサー
    • CGI