htaccess ルールから入ってくるものを検証する必要はありますか?
RewriteRule ^/?([0-9]{4})/?$ /run/run.php?year=$1 [NC,L]
This does http://www.localhost/2014
この場合、4 桁のみを許可する htaccess ルールを作成しました。私がする必要がありますか:
$thisYear = $_GET['year'];
数字かどうかなどを確認します。アルファベットは通り抜けますか?
重要なのは責任の分離です。
書き換えルールは、入力をアプリケーションに直接送信するためのものであり、それ以上のものではありません。アプリケーションは、何が有効で何がそうでないかを判断する責任があります。
あなたが示した書き換えルールから4桁しか得られないのは事実ですが、run.php
直接アクセスできますか? 誰かがそれを見つけたらどうなりますか?
書き換えのためのより広範な入力を受け入れるが、処理のためのより具体的なルールを受け入れる、より一般的なケースでは、アプリケーションの変更が必要になるたびに書き換えルールを変更する必要はありません。