0

クエリ文字列から変数を取得する問題に直面しています。ページに htaccess リダイレクトを使用しました。

以下のルールを書きました。

RewriteEngine On
RewriteRule ^([a-zA-Z0-9-/]+).htm$ category.php?uniqname=$1
RewriteRule ^([a-zA-Z0-9-/]+).htm/$ category.php?uniqname=$1

入力した場合にこのルールが行っているgold-plated-chain.htmことは、リダイレクト先のブラウザです category.php?uniqname=gold-plated-chain 今、1つの変数を渡したいので、このようにしていgold-plated-chain.htm?page=2ますが、category.phpでページ変数を取得できません私は適切にリダイレクトしていますが、そのページ変数がありません

前もって感謝します

4

3 に答える 3

2

あなたが求めているのは、クエリ文字列を追加する QSA フラグ ( http://httpd.apache.org/docs/2.0/mod/mod_rewrite.htmlを参照) だと思います。

RewriteRule 行の末尾に [QSA] を追加してみてください。

于 2012-06-28T10:04:45.530 に答える
1

[QSA] フラグを追加して、書き換えエンジンにクエリ文字列をマージするように指示する必要があります。[L] フラグを追加してベースを指定することは常に賢明です。"." をエスケープすることも賢明です。これはワイルドカードとして解釈されるため、これらの 2 つのルールを組み合わせることもできます。したがって:

RewriteEngine On
RewriteBase   /
RewriteRule   ^([\w-/]+)\.htm/?$   category.php?uniqname=$1  [L,QSA]

ところで、\wは単に省略形ですa-zA-Z0-9

于 2012-06-28T10:09:18.643 に答える
0

正規表現から ^ を削除する必要があります。文字列の開始を意味します。

于 2012-06-28T10:02:00.620 に答える