さくらインターネットのレンタルサーバを使用しています。
ドメインのwwwの有り無しを統一したかったので、.htaccessに以下のように設定しました。
<.htaccess>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule ^(.*)$ h ttp://www.domain.com/$1 [R=301,L]
検証してみると、
domain.com/item/123.html
domain.com/item/456.html
↓
www.domain.com/item/123.html
www.domain.com/item/456.html
上記のようにリダイレクトされるのを期待していたのですが、
以下のような動作をします。
domain.com/item/123.html
domain.com/item/456.html
↓
www.domain.com/item.php?id=123
www.domain.com/item.php?id=456
itemフォルダ内の.htaccessでリライトの設定をしているので、それが動いているのだと思うのですが、
リライトの設定をしているだけであって、リダイレクトの設定はしていません。
<itemフォルダ内の.htaccess>
RewriteRule ^([0-9]+)\.html$ /item.php?id=$1 [L]
リライトの設定しかしていないのに、なぜリダイレクトされてしまうのでしょうか?
仕様なのでしょうか?
No.2ベストアンサー
- 回答日時:
>[R]を付けていないのにリダイレクトされてしまいます。
あ、そういうことですか。
よくわからないけど、もしかしたら、
1)domain.com/item/123.html → domain.com/item.php?id=123 にリライトされる
.htaccess は下位ディレクトリから参照されるそうなので、まずこれが走る。このときにwww無しをwww付きに変更する記述はないので、内部的にdomain.com/item.php?id=123 にリライトされる。
2)domain.com/item.php?id=123 → www.domain.com/item.php?id=123 にリダイレクトされる
内部的なアクセスがwww付きに「リダイレクト」される。
ということなのではないですかね。
ドキュメントルートの.htaccess に
RewriteRule ^/item/([0-9]+)\.html$ /item.php?id=$1 [L]
を追加してみるとどうなりますかね。
RewriteLogLevelも上げておくと手がかり見つかるかもしれませんね。
解決しました。
ありがとうございます。
> .htaccess は下位ディレクトリから参照されるそうなので、まずこれが走る。
ご指摘の通りです。
.htaccess の実行される順番を勘違いしていました。
> RewriteRule ^/item/([0-9]+)\.html$ /item.php?id=$1 [L]
RewriteRule ^item/([0-9]+)\.html$ /item.php?id=$1 [L]
先頭の/は不要でしたが、思った通りの動作をしてくれました。
助かりました。
ありがとうございます。
No.1
- 回答日時:
ドキュメントルートの.htaccessにより、domain.com/item/123.html は www.domain.com/item/123.html へ。
そのごitemフォルダ内の.htaccessにより www.domain.com/item/123.html は www.domain.com/item.php?id=123 へ。
設定されている通りだと思いますが?
> そのごitemフォルダ内の.htaccessにより www.domain.com/item/123.html は www.domain.com/item.php?id=123 へ。
itemフォルダ内の.htaccess には[R]を付けていません。
リダイレクトを望んでいません。
[R]を付けていないのにリダイレクトされてしまいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SEO googleサーチコンソールで、重複URLが多数発生、その修正方法について 2 2023/06/23 16:15
- シティサイクル・電動アシスト自転車 【電動アシスト自転車 の購入】(1)価格.com か (2)近くの サイクルショップ か? 7 2023/03/23 17:54
- 美顔器・脱毛器・電気シェーバー 光脱毛器 ブラウンで髭を薄くしたいのですが 新品を買った方がいい? 1 2023/02/06 14:14
- その他(IT・Webサービス) 301リダイレクトの使い方について 7 2022/04/05 17:50
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
- WordPress(ワードプレス) httpからhttpsへのリダイレクト設定について 2 2022/04/17 09:49
- CPU・メモリ・マザーボード マザーボードのオーディオチップの名前が分かりません 1 2022/05/12 11:33
- Android(アンドロイド) microSD Sandisk なら間違いはないですか 基本的にどれくらいもつと思いますか 4 2023/02/09 23:34
- その他(ブログ) Brogger独自ドメインから独自ドメインへ変更する 1 2022/09/22 13:21
- その他(プログラミング・Web制作) 恒久的リダイレクトについて 2 2023/07/13 15:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
リライトのはずがリダイレクト...
-
ドラえもんDVD 2112年ドラえも...
-
onedrive にexcelファイルをア...
-
<A href ~ と一緒に値を渡すには
-
拡張子php画像をjpg画像等に変...
-
phpのheader("Location:#pos")...
-
フォントの色を変えるには?
-
XAMPP1.7.1上でPHPを実行すると...
-
円グラフ描画について
-
HPを開くとダウンロードページ...
-
PHPでメールを送信するには
-
Bookを閉じて保存した時のみ実...
-
Smartyのtemplatesとtemplates_...
-
インクルードした部分が表示さ...
-
phpでメール送信できません 原...
-
phpからエクセルのマクロを実行...
-
apacheで拡張子を省略してアク...
-
smarty foreach 半角スペース
-
さくらサーバーにて、phpからメ...
-
phpMyAdminはSSL下でアクセスす...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
centos6のlogにscript not foun...
-
正規表現を使い、URLで条件分岐...
-
「旭日中綬賞 」とはどんな賞で...
-
inet コントロールを用いてHTML...
-
htmlの書き換え
-
階層が違う場合の絶対パス相対...
-
文字化けで混乱中です...
-
数値から文字列へ変換後の先頭...
-
厚い本を開きっぱなしにしてお...
-
九州各地の美味しいものをお取...
-
htmlをphpにするにあたってデメ...
-
php セレクトボックス 分岐 ...
-
これを作成するにはPHP?CGI...
-
ASPソースコードをPHPソースコ...
-
PHPで作るフレーム、どんな風に...
-
phpの階層が変わると上手く読み...
-
拡張子htmlでphpが動作するフォ...
-
mod_rewriteでQUERYパラメータ...
-
青森県産のカルヴァドス
-
移動元のURLを変数に取りたい
おすすめ情報