になります(PG = 1またはPG =ページ番号)」
残念ながら、それはそのようには機能しません。 mysite.ext/tag/php/
が要求された場合、それがindex.php?p=tag&tag=php&pg=
に書き換えます
RewriteRule ^tag/([^/\.]+)/?(\d+)?/?$ index.php?p=tag&tag=$1&pg=$2 [QSA,NC,L]
:あなたが何ができるかを最善のは、このルールを使用することです。 pg
パラメータは空です(ご覧のとおり)。 - 何をする必要がpg
が、その後1
の値を割り当てる空であるかどうかを確認するindex.php
内のコードの余分なビットを置くことです:
$page_number = isset($_GET['pg']) ? $_GET['pg'] : '';
if (empty($page_number)) {
$page_number = 1;
}
else {
// convert it to INT type
$page_number = (int)$page_number;
}
コードは、上記のようにあまりにも多く(あまりにも安全なアプローチ)に見えるかもしれませんが、これは私がやりたいことです(電子商取引サイトのセキュリティを最優先にしているとき)。 (私はそれを短くするために完全な検証をスキップしました)
しかし、あなたはそれがはるかに小さくすることができますあなたが望むなら、(あなたはまだ、とにかく入力されたデータを検証する必要がある):
$page_number = isset($_GET['pg']) ? $_GET['pg'] : '';
if (empty($page_number)) $page_number = 1;
はないだろう'pg'が空であるかどうかをあなたのコードでチェックして、それが' 1'であると考える方が簡単でしょうか? – kapa