1

.htaccessを使用してURLを書き直す際に問題が発生しました。URLが元のURLのようになっている場合:http://www.example.com/page.php? id = 1&name = test after rewrite:http:/ /www.example.com/page-1-test正常に動作する

しかし、マネージャーはスペースの代わりにハイフンを要求したので、私はこれをしました

$name = str_replace(" ", "-", $name);

次に、$page_namehttp ://www.example.com/page.php? id=2&name=test-some-other-textをエコーし​​ます

したがって、次のようになりますhttp://www.example.com/page-2-test-some-other-text

$ _GET ['id']を実行しようとすると、IDとして2-test-some-other-textが必要になります。

これが.htaccessの書き換えルールです

RewriteRule page-(.*)-(.*)$ page.php?id=$1&name=$2
4

1 に答える 1

3

IDは数字なので、次のルールを試してください。

RewriteRule page-([0-9]+)-(.*)$ page.php?id=$1&name=$2

IDの数字のみを照合し、貪欲な照合を試みるのではなく、最後のダッシュで終了します。

于 2012-05-27T18:12:08.217 に答える