0

nginxで実行されているWebサイトがあり、インデックスファイルはフォルダー内にあります。/folder/index.php

私は自分のウェブサイトのホストに「インデックス」ディレクティブを追加するように依頼しましたが、それは不可能(安全ではない)であると言われ、RewriteRuleによってそれを行うように言われました。

したがって、誰かが私のWebアドレスを入力するたびに、彼は/folder/file.phpにアクセスする必要があります。

しかし、それほど単純ではありません。誰かが私のバナーをクリックしたときに、GoogleURLBuilderから文字列を受け取る必要があるからです。

そしてもっとあります:私のウェブサイトはユーザーがmydomain.com/userのような独自のURLを作ることを可能にするので、私はすでにこのRewriteRuleを持っています:

^/([a-z,0-9,A-Z,_-]+)$  /myhotsite.php?ID=$1
flag: Continue (last)    

myhotsite.phpはクエリを処理し、MySQLコンサルトに基づいてWebページをマウントします。

それでは、トピックで説明してみましょう。

  1. mydomain.com-> /folder/file.php
  2. mydomain.com/?utm_source=blablabla-> /folder/file.php/?utm_source=blablabla
  3. mydomain.com/ *->何も起こらず、リダイレクトもありません。/myhotsite.php?ID=$1に移動する現在の書き換えルールが保持されます。

ケース2では、クエリ文字列を保持する必要があります。これはGoogle Analyticsに送信されます(私が懸念している限り、QSAを使用する必要がありますが、方法がわかりません)

では、これを最も簡単な方法で解決できるとどう思いますか?

そして、どちらのルールが優先されますか:私がすでに持っているルール、またはあなたが私が作成するのを手伝ってくれるルールですか?

4

1 に答える 1

0

1 と 2 の両方が次のルールで処理されます。

RewriteRule ^/?$ /folder/file.php [L]

クエリ文字列は自動的に追加されます。これを他のルールの前に配置する必要があります。

于 2012-07-05T21:46:10.767 に答える