- - PR -
(ユーザ名)/(ファイル) を ~(ユーザ名)/(ファイル) のへURLを変更するにはどうすればいいでしょうか?
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-08-21 12:22
前にも投稿させていただいたものです。
Apatch Rewriteモジュールについて追加質問です。 http://aaa/(ユーザ名)/(ファイル) ↓ http://aaa/~(ユーザ名)/(ファイル) とアクセスできるようにしたいのですが、 RewriteRuleはどう設定すればよいでしょうか? [ メッセージ編集済み 編集者: volvic 編集日時 2006-08-21 12:23 ] [ メッセージ編集済み 編集者: volvic 編集日時 2006-08-21 12:25 ] |
|
投稿日時: 2006-08-21 12:28
こんちは
RewriteRule ^(\w+)/(\w+)$ ~$1/$2 な感じでできないですか? 今試せる環境がないのですみません [ メッセージ編集済み 編集者: 未記入 編集日時 2006-08-21 17:02 ] |
|
投稿日時: 2006-08-21 14:44
こんな感じでしょうか。
RewriteRule ^/(\w+)/(.+)$ http://aaa/~$1/$2 [P,L] ReWrite先がaliasだったりhomeだったりする場合、[P]使った方が確実です。 \w+だと、拡張子の区切りに使う.とかが対象になりませんので。 階層下の階層を対象にしないのであれば、適宜置き換えて下さい。 ※ユーザ名も、_等の記号を使う場合、置き換えないといけませんし…。 |
|
投稿日時: 2006-08-21 14:45
回答ありがとうございます!
回答いただいた設定ではNot Foundとなってしまいました。 http://japache.infoscience.co.jp/japanese/manual/mod/mod_rewrite.html#RewriteRule の最後に書かれてあるのですが、map.txtの中身が何なのかからなかったです。 map.txtには何を書けばよいのでしょうか? |
|
投稿日時: 2006-08-21 15:06
>回答いただいた設定ではNot Foundとなってしまいました。
どのようなURLを叩いたか書いて下さい。 先程書いた例は、ユーザ名やファイル名等に条件がある為、 入力したURLによってはReWriteされない可能性があります。 >map.txtには何を書けばよいのでしょうか? RewriteMapを使わないなら不要です。 とりあえず、 RewriteLog "logs/rewrite_log" #適宜パス等は変更して下さい RewriteLogLevel 2 でReWriteされているか、またどのようにReWriteされたかログで見て下さい。 |
|
投稿日時: 2006-08-21 15:25
SHRさん、回答ありがとうございます。
ログには 192.168.23.175 - - [21/Aug/2006:15:21:42 +0900] [aaa.jp/sid#9b09734][rid#9b122e4/initial] (2) init rewrite engine with requested uri /user/aaa.html 192.168.23.175 - - [21/Aug/2006:15:21:42 +0900] [aaa.jp/sid#9b09734][rid#9b122e4/initial] (1) pass through /user/aaa.html と書き出されました。 (サーバ名は"aaa"、ユーザ名は"user"となおしました。) /~user/aaa.html は作成したので、見つからないことはないと思うのですが、、 |
|
投稿日時: 2006-08-21 16:14
> pass through /user/aaa.html
と、書かれています通り、記載されたRewriteRuleに/user/aaa.htmlが引っかかっていないようです。 こちらで試したところ、 #ReWriteRule > RewriteRule ^/(\w+)/(.+)$ http://aaa/~$1/$2 [P,L] #ReWriteLog(一部削除) > (2) init rewrite engine with requested uri /user/aaa.html > (2) rewrite '/user/aaa.html' -> 'http://aaa/~user/aaa.html' > (2) forcing proxy-throughput with http://aaa/~user/aaa.html > (1) go-ahead with proxy request proxy:http://aaa/~user/aaa.html [OK] 上記のように意図した通りになっております。 後は環境差異でしょうか。 (Apache2.2.3 --enable-rewrite) |
|
投稿日時: 2006-08-21 17:01
/~user/aaa.html を作成したとありますがどこに作成したのでしょうか?
通常は /home/user/public_html/aaa.html とかになると思いますが、 まさか /home/user/aaa.html とかに置いたりしていないですよね? その前にRewriteRuleに引っ掛っていないのかも知れませんけど... |