人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

.htaccessのmod_rewriteの質問です。
リダイレクト・正規表現を使うと思います。


http://www.hoge.com/54343.html
のようなディレクトリ配下のhtmlへのアクセスを全て
http://www.hoge.com/index.php
に飛ばしたいと思います。
htmlのファイル名は全て数字です

その場合のmod_rewriteの書き方を教えてください。

Redirect permanent /(.*).html http://www.hoge.com/index.php
これではうまくいきませんでした。


また、できれば
http://www.hoge.com/sitemap.html
のみは
http://www.hoge.com/sitemap.php
に飛ばしたいです。

つまり、先ほどのリダイレクトは「数字.html」に限定させたいです。


どなたかよろしくお願いします。

●質問者: tokyosmash
●カテゴリ:インターネット ウェブ制作
✍キーワード:.htaccess HTML mod_rewrite アクセス ディレクトリ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● kn1967
●65ポイント ベストアンサー
RewriteEngine on
RewriteRule sitemap.html sitemap.php [L]
RewriteRule [0-9]+.html http://www.hoge.com/index.php [L]

ルールは上から順に比較され、

一番最初に当てはまった行に書かれているルールに従ってリダイレクトされます。

従って

RewriteEngine on
RewriteRule sitemap.html sitemap.php [L]
RewriteRule *.* http://www.hoge.com/index.php [L]

なんて事も・・・

◎質問者からの返答

なぜか500になってしまうので色々と試してみると

RewriteRule [0-9]+.html index.php [L]

これでうまくいきました。Redirectの場合はhttpから、Rewriteの場合はトップディレクトリから書く決まりなのでしょうか。


>RewriteRule *.* http://www.hoge.com/index.php [L]

これはとても便利ですね!

全部のファイルを指定しなくてもいいのは便利です。勉強になりました。

情報ありがとうございました。


2 ● Yota
●25ポイント

RedirectMatch "\d+.html" http://www.hoge.com/index.php

RedirectPermanent /sitemap.html http://www.hoge.com/sitemap.php

参照したURL

http://httpd.apache.org/docs/2.0/ja/mod/mod_alias.html#redirectm...

◎質問者からの返答

ありがとうございます。参考にさせて頂きます。


3 ● minkpa
●0ポイント

http://japache.infoscience.co.jp/rewriteguide/

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ