リダイレクト・正規表現を使うと思います。
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」に限定させたいです。
どなたかよろしくお願いします。
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]
なんて事も・・・
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]
これはとても便利ですね!
全部のファイルを指定しなくてもいいのは便利です。勉強になりました。
情報ありがとうございました。
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...
ありがとうございます。参考にさせて頂きます。
なぜか500になってしまうので色々と試してみると
RewriteRule [0-9]+.html index.php [L]
これでうまくいきました。Redirectの場合はhttpから、Rewriteの場合はトップディレクトリから書く決まりなのでしょうか。
>RewriteRule *.* http://www.hoge.com/index.php [L]
これはとても便利ですね!
全部のファイルを指定しなくてもいいのは便利です。勉強になりました。
情報ありがとうございました。