301リダイレクトの方法について

このQ&Aのポイント
  • 301リダイレクトの方法について教えてください。htaccess設定でリダイレクトを行いたい場合、どのように設定すればよいのでしょうか?
  • 質問者は、http://○○.com/kanagawa/からhttp://○○.com/kanagawa.htmlへのリダイレクト、およびhttp://○○.com/kanagawaからhttp://○○.com/kanagawa.htmlへのリダイレクトを実現したいと考えています。
  • 具体的なhtaccessの設定方法について、1に関しては既にリダイレクトが成功していることを報告していますが、2に関してはリダイレクトができないとのことです。方法を知っている方は教えていただけると助かります。
回答を見る
  • ベストアンサー

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] こんな感じにしてみましたが、リダイレクトできませんでした。 方法ご存じの方、おしえてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.1

RewriteCondは不要で、 RewriteRule ^(.*)kanagawa$ http://○○.com/kanagawa.html [R=301,L] RewriteRule ^(.*)kanagawa/$ http://○○.com/kanagawa.html [R=301,L] あるいは、ホスト名を省略して、 RewriteRule ^(.*)kanagawa$ /kanagawa.html [R=301,L] RewriteRule ^(.*)kanagawa/$ /kanagawa.html [R=301,L]

hide_momiji
質問者

補足

ありがとうございます。 RewriteEngine on RewriteRule ^(.*)kanagawa$ /kanagawa.html [R=301,L] RewriteRule ^(.*)kanagawa/$ /kanagawa.html [R=301,L] でやってみましたが、リダイレクトができませんでした。 htaccessはドメインルートに設置しています。 さくらのレンタルサーバなので、apacheの設定ファイルはさわれません。 環境による要因でしょうか?

関連するQ&A

  • httpからhttpsへのリダイレクト方法

    すいません、よくわかりませんので教えて下さい。.htaccessに記述してhttpにアクセス来たものをhttpsへリダイレクトしたいです。 今の状況は下記です。 AddHandler application/x-httpd-php53 .php RewriteEngine On # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} ^(sanetsu.com) RewriteCond %{REQUEST_URI} !^/(sanetsu.com)/ RewriteRule ^(.*)$ http://www.sanetsu.com/$1 [L] # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} ^(www.burikama.com) RewriteCond %{REQUEST_URI} !^/(www.burikama.com)/ RewriteRule ^(.*)$ /%{HTTP_HOST}/$1/ [L] # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} ^(burikama.com) RewriteCond %{REQUEST_URI} !^/(burikama.com)/ RewriteRule ^(.*)$ http://www.burikama.com/$1 [L] # 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 すいません、上記の記述をどのように変更したらhttpsへリダイレクトさせることができますでしょうか?前任のweb担当の方と連絡が付かないので教えていただけたらありがたいです。 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • .htaccessでリダイレクトしたいです@さくら

    .htaccessでwwwなしのサイトにリダイレクトをかけたいのですが、うまくいきません。 色んな方法がサイトにありそれを試しているのですが、 一瞬テストでうまくいったと思ったのですが、それ以降うまくいかなくなってしまいました。 使用しているプロバイダはさくらインターネットです。 今までに試したコマンドは下記です。 --------------------------- <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} ^(www.hoge\.com)(:80)? RewriteRule ^(.*) http://hoge.com/$1 [R=301,L] </IfModule> --------------------------- RewriteEngine on RewriteCond %{HTTP_HOST} www¥.hoge¥.com RewriteRule .* http://hoge.com%{REQUEST_URI} [R=301,L] --------------------------- .htaccess を設置しているディレクトリは /home/hoge/www になります。 ぜひ教えていただけないでしょうか。よろしくお願いいたします。 また、.htaccessは変更してどのくらいで反映されるのか、補足的に教えていただけると助かります。 以上、よろしくお願いいたします。

  • 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 にするとリダイレクトされますが、処理がループされていますという表示が出てしまいます。 どのような記述をすればうまくいくのでしょうか?

  • 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> アドバイスをいただけないでしょうか。 よろしくお願いいたします。

  • リダイレクトで「自動転送設定がループしています」

    サイトリニューアルに伴いディレクトリ構造が変わるので、.htaccessで以下のように書いてリダイレクトしようと思いましたが、「このアドレスへのリクエストに対するサーバの自動転送設定がループしています。」と出てリダイレクトが出来ません。 Redirect permanent /aaa/bbb/ccc/xxx.html http://hoge.com/aaa/123 試しにリダイレクト先を全く別のURLにしてみたら正常にリダイレクトされるので、上記の記述自体は問題ないと思うのですが、新しいサイトにはdrupalを使っていて、.htaccessには以下の内容が予め記述してあります。何かバッティングしているのでしょうか? <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !=/favicon.ico RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] </IfModule> PHPは5.2.5です。

    • 締切済み
    • PHP
  • wwwありかつhttpsへリダイレクトさせたい

    .htaccessに以下の記述をしていますが、 ブラウザでURLに”xxxx.jp”と"http://xxxx.jp"と入力してアクセスすると、 https://xxxx.jpにリダイレクトされてしまます。 ドメインxxxx.jpを.htaccessに記載せずにhttps://www.xxxx.jpにリダイレクトさせる記述をご存知でしょうか? wwwありの場合"www.xxxx.jp"、"http://www.xxxx.jp"は意図したとおり”https://www.xxxx.jp"に転送されています。 --- RewriteEngine On RewriteCond %{HTTPS} off RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] ---

    • 締切済み
    • CGI
  • 301リダイレクトの例外処理

    WEBサイト全体に 拡張子がhtmとhtmlが混在していて管理がわずらわしいので、 .htaccessで下記のような設定をしました。 ドメイン直下に.htaccessを置いているので、サイト全体でこの設定が有効に なっているのですが、あるフォルダだけこれが適用されないように 設定をしたいと思います。 いろいろやってみたのですが、今ひとつ正常に動いてくれません。 どのようにすればいいのでしょうか。 -------------------------------------------------------------- Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^XXX.jp RewriteRule ^(.*)$ http://www.XXX.jp/$1 [R=301,L] Options +FollowSymLinks RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.html RewriteRule ^(.*)index.html$ http://www.XXX.jp/$1 [R=301,L] Options +FollowSymLinks RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.htm RewriteRule ^(.*)index.htm$ http://www.XXX.jp/$1 [R=301,L] -------------------------------------------------------------- サーバーはApache/1.3.42 .htaccessファイルを置いているのは、ドメイン直下です。

  • HTTPSにおけるリダイレクト設定に関して

    Apache2.2+mod_sslにてSSL通信環境を構築しました。 DNS設定は「sample.com」も「www.sample.com」も同じサーバIPを指定しております。 「www.sample.com」をコモンネームとした証明書を認証局から取得し、 「https://www.sample.com/」にアクセスする場合は問題はありませんでした。 しかし、「https://sample.com/」にアクセスすると、 IEでは「このWebサイトのセキュリティ証明書には問題があります。」と表示されてしまいます。 この問題を解決しようとリダイレクトの対処も含め、以下の様な対応を行いましたが解決できませんでした。 どの様な対応を行えば、上記問題を解決する事ができるのでしょうか? 「sample.com」についても証明書を発行してもらうしかないのでしょうか? 皆様のお知恵をお借りしたく、何卒よろしくお願い致します。 以下、行った対応 ―――――――――――――――――――――― ■mod_rewrite.soを有効にする。 LoadModule rewrite_module modules/mod_rewrite.so ■httpd.confの末尾に以下を追記する。 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^sample\.com RewriteRule ^/(.*)$ https://www.sample.com/$1 [R=301,L] RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^/(.*)?$ https://%{HTTP_HOST}/$1 [L,R] </IfModule> ■3.httpd-ssl.confに以下を追記する。 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^sample\.com RewriteRule ^/(.*)$ https://www.sample.com/$1 [R=301,L] </IfModule>

  • リダイレクトのhtaccessを置くと403エラー

    perlで書いたCGIファイルがあるのですが、スマホ用のリダイレクトhtaccessファイルをトップディレクトリに置いた所、CGIのページが403エラーになってしまいました。 .htaccessファイルを外すと正常に表示するので、原因は.htaccessなのですが、理由が思い当たりません。 CGIのソースは出せないですが、お問い合せフォーム用のCGIです。 何かお気づきの点がありましたら助言お願い致します。 ● .htaccess(トップディレクトリに設置) <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_URI} !/sp/ RewriteCond %{HTTP_USER_AGENT} (iPhone|Android.*Mobile|Windows.*Phone) RewriteRule ^(.*)$ sp/$1 [R] RewriteBase / RewriteCond %{REQUEST_URI} /sp/ RewriteCond %{HTTP_USER_AGENT} !(iPhone|Android.*Mobile|Windows.*Phone) RewriteRule ^sp/(.*)$ $1 [R] RewriteBase / </IfModule> ● ディレクトリ構造 /index.html・・・トップページ /.htaccess・・・上記内容 /contact/all/index.cgi・・・403エラーになるCGI /contact/all/.htaccess・・・「Options ExecCGI」のみ記述 /sp/・・・スマホ用のリダイレクト先ディレクトリ(以下略)

  • HTTPSへの強制リダイレクトについて

    質問です。さくらレンタルサーバで.htaccessで RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] or RewriteCond %{HTTPS} on RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L] にしてもリダイレクトループが起きてしまい、強制的にhttpsにする事が出来ません。 例としてドメインを abc.jp として http://abc.jp/ (wwwはなし)で接続した時に httpsに移すという物ですが、さくらレンタルサーバでは、なぜかループしてしまいます。 どうすれば強制化出来るでしょうか。また.htaccess以外にも方法がありましたら お教え下さい。

専門家に質問してみよう