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表示はそのままにしたい。
こうした場合、どのように修正すれば良いでしょうか?
下記のような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]
すみません、自己解決しました!
RewriteEngine on
RewriteRule ^(.*)/$ /test/index.php?rule=$1 [QSA,L]
上記コードで希望の動作になりました。
ちなみに下記サイトを参考にしました。
RewriteBase / を追加してもだめかしら?
2014/07/03 23:27:21はい、RewriteEngine onの次の行に RewriteBase / を追加してみましたが、それでも結果は同じでした。
2014/07/03 23:32:25