• 締切済み

mod_rewriteで整形してリダイレクトすると

教えてください。 http://blog.livedoor.jp/trisys/archives/3950417.html のように http://www.test.com/?page=1にアクセスすると http://www.test.com/1/にリダイレクトするようにできました。 しかし、 404エラー表示されます。 どうしたらいいのでしょうか? .htaccessに記載した内容は下記のとおりです RewriteEngine on RewriteCond %{THE_REQUEST} ^GET\ /\?page=([0-9]*)(.*)$ RewriteRule ^.* http://%{HTTP_HOST}/%1/? [L] よろしくお願い致します。

みんなの回答

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

>どうしたらいいのでしょうか? どうしたいのでしょうか? >http://www.test.com/?page=1にアクセスすると >http://www.test.com/1/にリダイレクトするようにできました。 というのは、http://www.test.com/1/index.php(もしくはindex.html)が存在するから、そういうリダイレクトを書くわけですよね?それが存在しなければ404になるのは当然です。

全文を見る
すると、全ての回答が全文表示されます。

関連する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は変更してどのくらいで反映されるのか、補足的に教えていただけると助かります。 以上、よろしくお願いいたします。

  • 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 リダイレクトの記述方法

    「wwwなし http://www.abc.net/」から 「wwwありに統一 sslありのhttps://www.abc.net/」にリダイレクトしたいのですが、以下の記述で合っていますでしょうか。よろしくお願いします。 Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^abc.net RewriteRule ^(.*)$ http://www.abc.net/$1 [R=301,L] RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

    • ベストアンサー
    • HTML
  • 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ファイルを置いているのは、ドメイン直下です。

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

    「○○○.jp」と「www.○○○.jp」を統一し、どちらのURLからの アクセスでも「○○○.jp」ディレクトリ内のコンテンツが 表示されるように設定したいと考えております。 契約しておりますレンタルサーバ会社では.htaccessファイルの 編集内容についてはサポートしておらず、ネット上で設定方法を 検索して試みておりますが、アクセスすると403のエラーが表示され 上手くいっておりません。 以下に.htaccessの設定内容をとエラーの状況を記載いたします。 Webサーバの運用については知識が皆無の為、非常に難儀しております。 不備があればご指摘いただき、またその他の設定等での不具合の 可能性があれば、それもご教示いただけませんでしょうか。 宜しくお願い申し上げます。 ---------------------------------------------------------------- # Enable RewriteEngine. RewriteEngine On # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} ^(◆◆◆.jp|▲▲▲.com|■■■.com|◇◇◇.com|○○○.jp|www.○○○.jp) RewriteCond %{REQUEST_URI} !^/(◆◆◆.jp|▲▲▲.com|■■■.com|◇◇◇.com|○○○.jp|www.○○○.jp)/ RewriteRule ^(.*)$ /%{HTTP_HOST}/$1/ [L] Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^www.○○○\.jp RewriteRule ^(.*)$ http://○○○.jp/$1 [R=301,L] ----------------------------------------------------------------

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

  • 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以外にも方法がありましたら お教え下さい。

  • htaccessの書き方

    RewriteEngine On RewriteCond %{HTTP_HOST} ^dog.abcd.com$ RewriteCond %{REQUEST_URI} !^/dog/ RewriteRule (.*) /dog/$1 RewriteCond %{HTTP_HOST} ^cat.abcd.com$ RewriteCond %{REQUEST_URI} !^/cat/ RewriteRule (.*) /cat/$1 サブドメインを追加するには上記の記述をhtaccessに記入すればよいとサーバー会社の説明にありましたので、その通りにしました。 ところが、htaccessに設定していないサブドメインにアクセスすると、通常のドメインの内容が表示されてしまいます。 登録ドメインがabcd.comだとして、設定していないサブドメインがtest.abcd.comだとすると、test.abcd.comにアクセスするとabcd.comの内容がそのまま表示されてしまいます。 存在しないサブドメインにアクセスすると全てメインドメインの内容が表示されてしまうのは、検索エンジン対策としても思わしくないように思えます。 出来れば、存在しないサブドメインへのアクセスは404エラーになるようにしたいのですが、方法がわかりません。 htaccessで使われる言語の知識がなくチンプンカンプンなので 適当に以下のような感じでいろいろ試行錯誤していますが、なかなか思うようにいきません。 RewriteEngine On RewriteCond %{HTTP_HOST} ^dog.abcd.com$ RewriteCond %{REQUEST_URI} !^/dog/ RewriteRule (.*) /dog/$1 RewriteCond %{HTTP_HOST} ^abcd.com$ RewriteCond %{REQUEST_URI} !^/ RewriteRule (.*) /$1 RewriteCond %{HTTP_HOST} (ここでabcd.comまたはdog.abcd.com以外のリクエストは)$ RewriteCond %{REQUEST_URI} !^/404/ RewriteRule (.*) /404/$1 を表示させる、としたいのですが、このような命令文はありますでしょうか? どなたかアドバイスいただければ大変助かります。

    • ベストアンサー
    • HTML
  • httpsでmod_rewriteができない

    はじめまして。 Linux環境で、apacheのhttp.confにmod_rewriteを記載し、httpsとhttpを切り替えたいと思っています。 httpd.confに以下のように記述しています。 <IfModule mod_rewrite.c> RewriteEngine on  #(1)httpで/aaaa/bbbbにアクセスされたときにhttps://~に変えたい RewriteCond %{REQUEST_URI} ^/aaaa/bbbb RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R]  #(2)httpsで/cccc/ddddにアクセスされたときにhttp://~に変えたい RewriteCond %{REQUEST_URI} ^/cccc/dddd RewriteCond %{HTTPS} on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R] </IfModule> 上記(1)のhttpでのアクセス時には、mod_rewriteが効いてhttpsへ切り替えられるのですが、 上記(2)のhttpsでのアクセス時には、mod_rewriteが効いていないようでhttpへ切り替えられません。 rewriteログを見てみると、当サイトへhttpでアクセスした場合にはログが出力されますが、 httpsでアクセスした場合には出力されません。 そもそもhttpsでのアクセスの場合にhttpd.confのmod_rewriteが効いていないようです。 ですが、これに対しどこを調査すべきかが分かっていません。 SSLの設定自体は出来ていると思っていて、 https://xxxx.jpのようにアクセスするとちゃんとページが表示されます。 どの当たりに問題がありそうでしょうか? 解析のヒントを頂けたらと思います。 宜しくお願い致します。