以下のように.htaccessに記述したRewrite Ruleが正常に動作しません。
RewriteEngine on
RewriteRule ^hoge/$ a/hoge/ [L]
ブラウザに表示されるアドレスは変えたくないため、[R]のリダイレクトの記述をしていないのですが、
実際にブラウザでアクセスすると、
『このウェブページにはリダイレクト ループが含まれています。』
となってしまいます。
以下のようにフルパスで指定してもうまくいきませんでした。
RewriteEngine on
RewriteRule ^hoge/$ /var/www/vhosts/default/htdocs/a/hoge/ [L]
また、httpd.confに直接記述しても同様の結果になりました。
移転先にもmod_rewriteは有効になっているようなのですが、
VPSでmod_rewriteを使う場合の場合なにかほかに設定が必要なのでしょうか?
以前のサーバでは出来ていたことが
新しいサーバでは動かないという事だったのですね・・・。
RewriteRule ^hoge/$ a/hoge/ [L] だと
hoge/ というディレクトリを
hoge/ で終わっているディレクトリに移動・・・
これは無限ループと判定されちゃいます。
以前は
RewriteRule ^hoge/$ a/fuga/ [L]
ではありませんでしたか?
同じディレクトリだと誤認識させないために
RewriteRule ^/hoge/$ /a/hoge/ [L]
というように共に / から指定してみてください。
ループというメッセージが出るという事は・・・
「coreserver から coreserver に飛ばそうとしている」と理解されています。
他のサーバ(例えばfugafuga.jp)に飛ばしたい場合は
RewriteEngine on RewriteRule ^hoge/$ http:/fugafuga.jp/a/hoge/ [L]
というように記述してください。
(fugafuga.jp側では何もする必要ありません)
説明不足ですみません。
もともとcoreserver から coreserver にブラウザのアドレスを変えないで、
同じサーバ内部で別のディレクトリを呼ぶようにしてうまくいっていたのですが、
同じことを移転先のVPSサーバでやりたいのですが、
この記述ではループが発生してしまいます。
同じサーバ内にURLを変えない形でリダイレクトをしたいのですが、
VPSで環境が違うせいか想定したとおりに動いてくれない状況です。
よろしくお願いします。
以前のサーバでは出来ていたことが
新しいサーバでは動かないという事だったのですね・・・。
RewriteRule ^hoge/$ a/hoge/ [L] だと
hoge/ というディレクトリを
hoge/ で終わっているディレクトリに移動・・・
これは無限ループと判定されちゃいます。
以前は
RewriteRule ^hoge/$ a/fuga/ [L]
ではありませんでしたか?
同じディレクトリだと誤認識させないために
RewriteRule ^/hoge/$ /a/hoge/ [L]
というように共に / から指定してみてください。
ありがとうございます。
ご指摘の通り、以前は
RewriteRule ^hoge/$ a/fuga/ [L]
でした。
変換元の/からの指定は盲点になってました。
今確認できる環境にいないので、後ほど試してみます。
ありがとうございます。
ご指摘の通り、以前は
RewriteRule ^hoge/$ a/fuga/ [L]
でした。
変換元の/からの指定は盲点になってました。
今確認できる環境にいないので、後ほど試してみます。