- - PR -
Apache / に対する RewiteRule
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-06-21 13:52
/* へのアクセスを /<directory>/* になるように RewriteRule を設定しました。
---- RewriteRule ^/(.*) /<directory>/$1 [PT] ---- http://<myhostname>/index.html へアクセスすると, @ /index.html -> /<directory>/index.html の rewrite が発生し、うまくいきます。 ---- xxx.xxx.xxx.xxx - - [21/Jun/2006:13:20:05 +0900] [<myhostname>/sid#93f8168][rid#9561228/initial] (2) init rewrite engine with requested uri /index.html xxx.xxx.xxx.xxx - - [21/Jun/2006:13:20:05 +0900] [<myhostname>/sid#93f8168][rid#9561228/initial] (3) applying pattern '^/(.*)' to uri '/index.html' xxx.xxx.xxx.xxx - - [21/Jun/2006:13:20:05 +0900] [<myhostname>/sid#93f8168][rid#9561228/initial] (2) rewrite /index.html -> /<directory>/index.html xxx.xxx.xxx.xxx - - [21/Jun/2006:13:20:05 +0900] [<myhostname>/sid#93f8168][rid#9561228/initial] (2) forcing '/<directory>/index.html' to get passed through to next API URI-to-filename handler ---- しかし、 http://<myhostname>/ へアクセスすると、 @ / -> /<directory>/ の rewrite その後、/<directory>/index.html へ リダイレクトし、 A /<directory>/index.html -> /<directory>/<directory>/index.html の rewrite が発生し、HTTP Status 404になってしまいます。 ---- xxx.xxx.xxx.xxx - - [21/Jun/2006:13:25:19 +0900] [<myhostname>/sid#93f8168][rid#9561228/initial] (2) init rewrite engine with requested uri / xxx.xxx.xxx.xxx - - [21/Jun/2006:13:25:19 +0900] [<myhostname>/sid#93f8168][rid#9561228/initial] (3) applying pattern '^/(.*)' to uri '/' xxx.xxx.xxx.xxx - - [21/Jun/2006:13:25:19 +0900] [<myhostname>/sid#93f8168][rid#9561228/initial] (2) rewrite / -> /<directory>/ xxx.xxx.xxx.xxx - - [21/Jun/2006:13:25:19 +0900] [<myhostname>/sid#93f8168][rid#9561228/initial] (2) forcing '/<directory>/' to get passed through to next API URI-to-filename handler xxx.xxx.xxx.xxx - - [21/Jun/2006:13:25:19 +0900] [<myhostname>/sid#93f8168][rid#956d258/initial] (2) init rewrite engine with requested uri /<directory>/index.html xxx.xxx.xxx.xxx - - [21/Jun/2006:13:25:19 +0900] [<myhostname>/sid#93f8168][rid#956d258/initial] (3) applying pattern '^/(.*)' to uri '/<directory>/index.html' xxx.xxx.xxx.xxx - - [21/Jun/2006:13:25:19 +0900] [<myhostname>/sid#93f8168][rid#956d258/initial] (2) rewrite /<directory>/index.html -> /<directory>/<directory>/index.html xxx.xxx.xxx.xxx - - [21/Jun/2006:13:25:19 +0900] [<myhostname>/sid#93f8168][rid#956d258/initial] (2) forcing '/<directory>/<directory>/index.html' to get passed through to next API URI-to-filename handler ---- Aのrewrite を回避する方法を教えてください。 よろしくお願いいたします。 [ メッセージ編集済み 編集者: Jumpin' Jack Flash 編集日時 2006-06-21 13:53 ] |
|
投稿日時: 2006-07-06 12:02
自己レスです。
---- RewriteRule ^/<directory>/(.*) /$1 [R] RewriteRule ^/(.*) /<directory>/$1 [PT] ---- で、いけました。 |
|
投稿日時: 2006-07-06 14:06
こんにちは
解決済みのようですが RewriteCond %{REQUEST_URI} !^/<directory> <<除外条件 RewriteRule ^/(.*)$ /<directory>/$1 RewriteCondでRewriteRuleから除外すればいいのでは? |
|
投稿日時: 2006-07-06 15:01
コメントありがとうございます。
このように設定しました。 ---- RewriteCond %{REQUEST_URI} !^/<directory>/ RewriteRule ^/(.*)$ /<directory>/$1 [PT] ---- RewriteCondの最後に"/"を付けた。 RewriteRuleの最後に[PT]を付けないと遷移しないようです。 で、概ねOKと思われましたが、 http://<myhostname>/ → http://<myhostname>/<directory>/index.html になってしまいます。 |
1