hardboiled243回答ポイント 90ptウォッチ 3

Apacheのmod_rewriteについてお聞きします。


現在、.htaccessに以下のように記述してhoge.phpというスクリプトを動的に出力することに成功しております。

RewriteEngine On
RewriteBase /
RewriteRule ^([0-9A-Za-z]+)\.html$ hoge.php?page=$1 [L]

この設定によって、例えば、123.htmlにアクセスするとhoge.php?page=123にアクセスしたのと同じように見せかけることができています。

ただ、当然ながら、このままでは123.htmlでもhoge.php?page=123でもアクセスできてしまいます。
SEOの観点から、同じページのURLが2つあることは好ましくないので、hoge.php?page=123のような動的URLへのアクセスを、^123.htmlにリダイレクトしたいと考えています。
そこで、下記の一行を追記しました。

RewriteRule ^([0-9A-Za-z]+)\.html$ hoge.php?page=$1 [R=301,L]

これで動的URLを静的に書きかえたURLへリダイレクトしてくれると思ったのですが、動作せず、hoge.php?page=1でもアクセスできてしまいます。
下記のように正規表現を使わずに書いても同じ結果でした。

RewriteRule ^hoge.php?page=123$ 123.html [R=301,L]

解決法をご教授お願いします。

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

ベストアンサー

その他の回答

この質問へのコメント

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2010-05-28 00:41:50
終了日時
2010-05-29 00:41:42
回答条件
1人5回まで

この質問のカテゴリ

この質問に含まれるキーワード

mod_rewrite174.htaccess519Apache1359正規表現647SEO755PHP7798スクリプト2307hoge915HTML5036リダイレクト414URL11376観点624

人気の質問

メニュー

PC版