0

だから私はこのようなシステムを使用するウェブサイトを持っています:

domain.com/?page=123

次のように表示したい:

domain.com/123

私は 4 つの仮想ホストを持っているので、これをそのうちの 1 つに適用したいだけです。

私の仮想ホストのセットアップは次のとおりです。

$HTTP["host"] =~ "(^|\.)domain1\.org$" {
-settings-
}
$HTTP["host"] =~ "(^|\.)domain2\.org$" {
-settings-
}

私は本当に手がかりがなく、すでに検索してみました。

前もって感謝します。

4

1 に答える 1

0

正しいホスト ブロック内では、次のものが必要になります。

url.rewrite-once = ( "^/(.*)$" => "/?page=$1" )

これは正規表現で、行頭の後に何かが続くもの^に一致し、それを行末までの部分式でキャッチし、次のように書き換えます。/ .*(.*)$/?page=<the subexpression text>

$HTTP["host"] ブロック内にあるため、特定のホストにのみ適用されます。

編集:ログの例

2013-06-21 12:07:52: (response.c.300) -- splitting Request-URI 
2013-06-21 12:07:52: (response.c.301) Request-URI  :  /123 
2013-06-21 12:07:52: (response.c.302) URI-scheme   :  http 
2013-06-21 12:07:52: (response.c.303) URI-authority:  rewrite.example.com 
2013-06-21 12:07:52: (response.c.304) URI-path     :  /123 
2013-06-21 12:07:52: (response.c.305) URI-query    :   
2013-06-21 12:07:52: (response.c.300) -- splitting Request-URI 
2013-06-21 12:07:52: (response.c.301) Request-URI  :  /?page=123 
2013-06-21 12:07:52: (response.c.302) URI-scheme   :  http 
2013-06-21 12:07:52: (response.c.303) URI-authority:  rewrite.example.com 
2013-06-21 12:07:52: (response.c.304) URI-path     :  / 
2013-06-21 12:07:52: (response.c.305) URI-query    :  page=123

この例で/123は、に書き直され/?page=123、リクエストの再起動が表示されます/?page=123

于 2013-06-21T18:23:56.007 に答える