1

いくつかのページネーションとmod-rewriteのヘルプを探しているので、次のようなURLがあります

www.website.com/page.php?phone=111-393-4949

そして、私はそれをこのように書き直しています...

www.website.com/701-625-5444.php

これとともに

RewriteRule ^([0-9]+)-([0-9]+)-([0-9]+) page.php?number=$1-$2-$3 [L,QSA]

現在、modの書き換えにページ付けを追加する際に問題が発生しています。ここで何をする必要があるのか​​よくわかりませんが、これが私が思いついたものです

RewriteRule ^([0-9]+)-([0-9]+)-([0-9]+)/([^/]*) page.php?number=$1&page=$2 [L,QSA]

出力する必要があります。

www.website.com/494-949-9494/1.php

私が間違っているのは何ですか?

4

1 に答える 1

1

()ペアはキャプチャグループです。()電話番号にはすでに3つのグループがあるため、([^/]*)追加したものはにキャプチャされ$4ます。

RewriteRule ^([0-9]+)-([0-9]+)-([0-9]+)/([^/]*)$ page.php?number=$1-$2-$3&page=$4 [L,QSA]

(?:)?ページネーションがオプションの場合は、最後のセグメントの周りにオプションの非キャプチャグループを追加します。

RewriteRule ^([0-9]+)-([0-9]+)-([0-9]+)(?:/([^/]*))?$ page.php?number=$1-$2-$3&page=$4 [L,QSA]

私はあなたがあなたの例RewriteRuleのように強制的にを含めないことに注意します。それは次のようになります.phpwww.website.com/701-625-5444.php

RewriteRule ^([0-9]+)-([0-9]+)-([0-9]+)\.php$ page.php?number=$1-$2-$3 [L,QSA]
# Or...
RewriteRule ^([0-9]+)-([0-9]+)-([0-9]+)(?:/([^/]*))?\.php$ page.php?number=$1-$2-$3&page=$4 [L,QSA]
于 2013-03-06T03:20:48.540 に答える