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

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表示はそのままにしたい。


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

●質問者: dreamzico
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● 井戸端さん

下記のような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]

dreamzicoさんのコメント
ご回答ありがとうございます。 書いていただいたようなコードで試しますと、 たしかにブラウザのアドレスバーの表示は期待通りの動作なのですが、 肝心のリダイレクトがおかしくなってしまうようで、 「404 Not Found」 となってしまいます。

井戸端さんさんのコメント
RewriteBase / を追加してもだめかしら?

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

質問者から

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

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

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


ちなみに下記サイトを参考にしました。
http://www.nurs.or.jp/~sug/homep/rewrite/rewrite15.htm


関連質問

●質問をもっと探す●



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