URLのリダイレクトに関する質問

このQ&Aのポイント
  • URLのリダイレクトについて質問があります。
  • 具体的には、http://hoge.hogera.org/12345.htmlにアクセスした際に、http://hoge.hogera.org/hoge.html?id=12345にリダイレクトさせる方法を知りたいです。
  • また、リダイレクト後のブラウザで表示されるURLをhttp://hoge.hogera.org/12345.htmlにする方法も知りたいです。
回答を見る
  • ベストアンサー

URLのリダイレクトに関する質問です。

URLのリダイレクトに関する質問です。 http://hoge.hogera.org/12345.html にアクセスした時に http://hoge.hogera.org/hoge.html?id=12345 を実行させるために ewriteEngine on RewriteRule ^([0-9)]+)\.html$ hoge.html?id=$1[R=301,L] としています。 実際にこれで問題なくhttp://hoge.hogera.org/hoge.html?id=12345にアクセスできます。 この時、ブラウザーで表示させるURLもhttp://hoge.hogera.org/hoge.html?id=12345 となってしまうのですが、これはもとのURL http://hoge.hogera.org/12345.html とするにはどうすればよいでしょうか?

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

  • ベストアンサー
  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.3

> Lだけにすると > Error 404 - Not Found > となります。 RewriteBase / は設定していますか? (この「/」は、hoge.html のURLのパス部分です。 http://hoge.hogera.org/hogehoge/hoge.html だったら、RewriteBase /hogehoge/ になります)

lightbody
質問者

補足

再回答ありがとうございます。 > RewriteBase / > は設定していますか? 設定されていなかったので設定しました RewriteEngine on RewriteBase / RewriteRule ^([0-9)]+)\.html$ hoge.html?id=$1 [L] ですが、 Error 404 - Not Found となります。

その他の回答 (2)

  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.2

R=301は、「301」=「Moved Permanently」=「URLが変更になった」を意味し、 Rフラグを付けることで、ブラウザに表示されるURLも新しいものに変わるようになります。 表示URLを変えたくない(サーバ内部で処理させたい)場合は、Rフラグは付けずに RewriteRule ^([0-9)]+)\.html$ hoge.html?id=$1[L] にしてください。

lightbody
質問者

補足

Lだけにすると Error 404 - Not Found となります。 補足ですが hoge.htmlはphpとhtmlが混在しています。

  • BellBell
  • ベストアンサー率54% (327/598)
回答No.1

[R=301,L] ↓ [L]

lightbody
質問者

補足

Lだけにすると Error 404 - Not Found となります。 補足ですが hoge.htmlはphpとhtmlが混在しています。

関連するQ&A

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

    下記のように動的URLを静的なURLに置き換えています。 http://www.sample.com/dir/aaa/index.php?content_id=1 ↓ http://www.sample.com/aaa_index.content_id_1.htm この動的URLを、置き換えた静的URLへ301リダイレクトさせたいのですが、うまくいきません。 htaccessの記述を下記のようにしましたが、多分、動的URLの「?」があるためうまくいかないようです。 RewriteEngine on RewriteBase / RewriteRule ^dir/aaa/index\.php?content_id=(.*)$ /aaa_index.content_id_$1.htm [R=301,L] 「?」が含まれる動的URLから静的URLに301リダイレクトさせたい場合、どのように記述すれば良いでしょうか?

  • .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] よろしくお願い致します。

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

    301リダイレクトについて調べているのですが全く動作しません。 やりたいことは サブディレクトリのページをサブドメインに移動させたいのです。 例: http://www.hoge.com/fuga/index.html/ 上記の/fuga/より一段下の階層を http://piyo.hoge.com/index.html/ に移動させたいです。 色々なサイトを参考にし、 RewriteEngine On RewriteBase /fuga/ RewriteRule ^index\.php$ – [R=301,L] RewriteRule . /fuga/index.php [R=301,L] Redirect 301 /fuga/ http://piyo.hoge.com/index.html/ や RewriteEngine on RewriteRule ^fuga/(.*)$ http://piyo.hoge.com/index.html/$1 [R=301,L] など色々試してみましたが全く動作せず、また初心者のため理解できずに困っています。 どなたかお力を貸していただけたら嬉しいです。 よろしくお願い致します。 使用しているサーバーはhetemlです。

    • ベストアンサー
    • PHP
  • RewriteRuleで動的URLを静的URLに見せたい

    ご存知の方がいらっしゃいましたら、 ご指導いただきたいと思っています。 http://example.com/hoge.do?itemNo=123456(以下"A") という動的URLのリンクを http://example.com/hoge/123456(以下"B") という静的URLに見えるようなリンクに変えようと思っています。 そして、 "B"にアクセスした場合"A"の内容をブラウザに表示しつつ、 ブラウザのURL欄を"B"のままにしたいと思っています。 そこで、httpd.confに以下の設定をして、"B"にアクセスしたところ・・・ 1行目 RewriteEngine on 2行目 RewriteRule ^/hoge/(.*)$ /hoge.do?itemNo=$1 「Web ページがみつかりません(HTTP 404 )」 が帰ってきてしまいます。 そこで試しに httpd.confの設定を以下のように変えて、"B"にアクセスしたところ・・・ 2行目 RewriteRule ^/hoge/(.*)$ /hoge.do?itemNo=$1 ↓ 2行目 RewriteRule ^/hoge/(.*)$ /hoge.do?itemNo=$1 [R] "A"の内容をブラウザに表示され、ブラウザのURL欄は"A"のままとなってしまいます。 どのようにしたら、本来の想定どおりの動きができるのか? 何か他の設定がおかしいのか? どなたか心当たりがあればヒントをください。 どうかよろしくお願いします。

  • 動的URLを静的URLへリダイレクト

    サーバの移転にともない、古いURLから新しいURLへリダイレクトさせる作業を行っています。 旧:http://aaa.bbb.com/default.asp?year=yyyy&month=mm ↓ 新:http://mmm.nn.co.jp/yyyymm しかし上記のようにパラメータを持っているURLはうまくリダイレクトされません。 今回の場合、動的ページを静的ページに見せるのではなく、URL欄も表示も静的ページに遷移させます。 この作業にはISAPI_Rewriteを使っていますが、ISAPI_Rewriteで検索してもmod_rewriteで検索しても、静的URLから動的URLへのリダイレクト(URLは静的で表示が動的ページの内容)しかでてきません。 そもそも正規表現に「?」を入れるとリダイレクトできないのか(?がエスケープされていない気がします)、書き方が間違っているのなら正しい書き方を教えていただけると助かります。 [現在使っている記述] RewriteRule ^aaa/bbb.asp\?year=(.*)&month=(.*)$ http://one.case.com/ddd/$1$2 [R,L] よろしくお願いいたします。

  • 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
  • htaccessで個別に301リダイレクトする方法

    今回はじめてhtaccessにリダイレクトをしようと思っています。 ページごとに個別で行いたいと思っていますが パラメーターがつくとうまく動作してくれません。 RewriteEngine on RewriteRule ^whatis.php$ http://new.com/whatis.php [R=301,L] RewriteRule ^category/$ http://new.com/category/ [R=301,L] RewriteRule ^category/test.php?id=1$ http://new.com/category/test.php?id=1 [R=301,L] RewriteRule ^category/test.php?id=2$ http://new.com/category/test.php?id=2 [R=301,L] 1行、2行目の RewriteRule ^whatis.php$ http://new.com/whatis.php [R=301,L] RewriteRule ^category/$ http://new.com/category/ [R=301,L] はうまく動作していくれますが 3行、4行目は うまく動作してくれません。 どうのように記載したらパラメーター付きでも動作してくれますか? 詳しい方よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • .htaccessによる301リダイレクト

    www.hoge.jp/test_hoge/ このディレクトリ以下を www.piyo.com に、リダイレクトしたいです。 下記のように.htaccessを記載したのですが、 RewriteEngine On RewriteRule ^test_hoge(.*)$ http://piyo.com$1 [R=301,L] そのファイルはどこへ格納すればいいのでしょうか。 現在ルートディレクトリは /www/test_hoge/ となっています。 .htaccessを/www/の中にいれても /test_hoge/の中にいれてもエラーがおきてしまいます。 ただ、macのテキストエディットで作成しているからかなと思うのですが、そういうことはありえますか? どなたかご回答お願いします。

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