0

現在、xamppを使用してlocalhostから実行しているWebサイトを作成しています。mod-rewrite を使用してすべてをインデックスにリダイレクトしていますが、これはこれまでのところ機能しています。

# From  /somepage
# To    ?site=somepage
RewriteRule ^([^/\.\?=]+)/?$ ?site=$1 [L]

# From  /somepage=ID
# To    ?site=somepage&sub=ID
RewriteRule ^([^/\.\?=]+)=([^/\.\?]+)/?$ ?site=$1&sub=$2 [L]

しかし、URL の末尾にさらにクエリ文字列変数を追加できるようにしたいので、リダイレクトが機能している間にそのリンクを送信またはブックマークできます。私はこのようなものを作りました:

# From  /somepage?morevars
# To    ?site=somepage&morevars
RewriteRule ^([^/\.\?=]+)\?(.+) ?site=$1&$2 [L]

これにはさまざまなバリエーションを試し、条件を含めたり、別のルールとマージしたりしましたが、成功しませんでした。代わりに最初のルールに一致しているようですが、よくわかりません。

4

2 に答える 2

2

RewriteRule に指定されたパターンは、リクエストの URL パスと照合されます。つまり、スキーム、ホスト、ポート、クエリ文字列を含まないリクエスト URLです。

必要なのは、[QSA] (クエリ文字列追加) フラグを最初のルールに追加することです。RewriteRuleのリファレンス ドキュメントを参照してください。

于 2013-04-28T17:48:48.880 に答える