htaccessの記述方法について質問です。


Apache1.x系から2.2系へのバージョンアップで、.htaccessの動作がおかしくなってしまいました。
下記メンテの影響です↓
http://www.coreserver.jp/info/20140604.html


★希望の動作
http://example.com/test/abc
というURLにアクセスされた場合、
ブラウザのアドレスバーに見えているURL表示はそのまま変えずに、
実際には
http://example.com/test/index.php?rule=abc
にリダイレクトする。


★これまで
下記のようなhtaccessで上記の希望通りに動作していた。
RewriteEngine on
RewriteRule ^(.*)?/ http://example.com/test/index.php?rule=$1 [QSA,L]



★2.2系へのバージョンアップ後
リダイレクトはこれまで通りですが、リダイレクト後のURLが
ブラウザのアドレスバーに表示されるようになってしまった。


★やりたいこと
以前のように、裏側ではリダイレクトさせつつもブラウザで見えている
アドレスバーのURL表示はそのままにしたい。


こうした場合、どのように修正すれば良いでしょうか?

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2014/07/03 23:54:21

回答1件)

id:watercooler No.1

回答回数289ベストアンサー獲得回数51

下記のようなhtaccessで上記の希望通りに動作していた。
RewriteEngine on
RewriteRule ^(.*)?/ http://example.com/test/index.php?rule=$1 [QSA,L]

ほんとかしら?
http://example.com/test/index.php?rule=testになってしまわないのかしら?

裏側ではリダイレクトさせつつもブラウザで見えている
アドレスバーのURL表示はそのままにしたい。

こんな感じのことかしら?

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteCond %{REQUEST_FILENAME} !^index.php$
RewriteRule ^test/(.*)$ /test/index.php?rule=$1 [QSA,L]
他1件のコメントを見る
id:watercooler

RewriteBase / を追加してもだめかしら?

2014/07/03 23:27:21
id:dreamzico

はい、RewriteEngine onの次の行に RewriteBase / を追加してみましたが、それでも結果は同じでした。

2014/07/03 23:32:25
id:dreamzico

すみません、自己解決しました!

RewriteEngine on

RewriteRule ^(.*)/$ /test/index.php?rule=$1 [QSA,L]

上記コードで希望の動作になりました。


ちなみに下記サイトを参考にしました。

http://www.nurs.or.jp/~sug/homep/rewrite/rewrite15.htm

コメントはまだありません

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

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません