※ ChatGPTを利用し、要約された質問です(原文:ユーザーエリアにおけるmod_rewriteの参照先について)
ユーザーエリアにおけるmod_rewriteの参照先について
このQ&Aのポイント
ユーザーエリアにおけるmod_rewriteの参照先について解決できず
ユーザーエリアのmod_rewrite設定が正常に動作しない
Type1とType2の.htaccess設定でエラーが発生
ユーザーエリアにおけるmod_rewriteの参照先について
ユーザーエリアにおけるmod_rewriteの参照先について
ユーザーエリアにおけるmod_rewriteの参照先について意図しない挙動が発生して原因を追究していたのですが、解決することが出来ず、ご存知の方の知恵を拝借致したく思います。
まず、実施のサーバー状況は以下の様になります。
・http://192.168.0.2/~search/pref.php?pref=1 を http://192.168.0.2/~search/pref1/ で対応出来る様にする為、mod_rewriteを設定しています。
・サーバーパスは、/home/search/public_html/となっています。
・http://192.168.0.2/~search/pref.php は存在しています。
・動作が正常に動いているかを確認するため、RewriteRuleの最後に[R]を設定して正常にリダイレクトして読み込んでいるかを確認しています。
・mod_rewrite周りの設定はデフォルトのままです。
以上の状況において、2種類.htaccessの設定をしてみましたがそれぞれ以下の様になり、正常に動作をしません。
▼Type1
RewriteEngine on
RewriteRule ^pref([0-9A-Za-z]+)/$ pref.php?pref=$1&%{QUERY_STRING} [R]
▽Type1のURL表示結果とApacheエラーログの詳細
http://192.168.0.2/home/search/public_html/pref.php?pref=1
となり、
File does not exist: /var/www/html/home
とエラーログに残される。
▼Type2
RewriteEngine on
RewriteRule ^/~station/pref([0-9A-Za-z]+)/$ /~station/pref.php?pref=$1&%{QUERY_STRING} [R]
▽Type2のURL表示結果とApacheエラーログの詳細
http://192.168.0.2/pref1/
のまま止まった上でエラーが発生し、
File does not exist: /home/search/public_html/pref1
とエラーログに残されていました。
よろしくお願いいたします。
お礼
おっしゃる通り、RewriteBaseが必要でした。 RewriteBase /^search をベースに RewriteBase /~search とした所、無事動作が出来ました。 ありがとうございました。