0

パラメータを取得して RewriteRule を作成しようとしています。これは単純な例ですが、それでも機能しません。

RewriteRule ^/?localhost/([0-9]+) test.php?id=$1 [QSA]

したがって、私が行くと、test.php スクリプトのasがlocalhost/123必要になります。123$_GET

これが失敗する理由は何ですか?他のすべての「通常の」RewriteRules は完全に機能します。

4

2 に答える 2

2

localhostドメインで、 には属しませんRewriteRule。そして、私はあなた[QSA]をに変更した[L,QSA]ので、それ以上のルールは実行されません.

RewriteRule ^([0-9]+) test.php?id=$1 [L,QSA]

これを制限して、ドメインが localhost の場合にのみRewriteCond書き換える必要がある場合は、次のように使用します。

RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule ^([0-9]+) test.php?id=$1 [L,QSA]

これは、開発中にのみ実行するために書き換えがあった場合に役立ちますが、運用サーバーにデプロイされた場合には役立ちません。

于 2012-05-05T12:29:22.370 に答える
0

これを試して:

RewriteBase /localhost
RewriteRule ^(\d+)$ test.php?id=$1 [QSA]

\d は [0-9] を表します

お役に立てれば。

于 2012-05-05T12:30:31.213 に答える