かなりのURLを作るためにmod_rewriteの一連のルールを作成しようとしています。私はとても良い-この作品これまでindex.php?section=123&area=345&option=1 as /123/345/option=1
.htaccess mod_rewriteチャレンジ
を提供したい
:
RewriteRule ^(.+)/(.+)/(.+)$ /index.php?section=$1&area=$2&$3
[OK]を、ここで私の最初の問題だ:
どのようにしている場合に動作することを強制しません変数の1つは定義されていません。誰かが
/section/area/
ではなく/section
を閲覧するとします。 htaccessをオフにしておくと、デフォルトで/area/
が自動的に作成されるようにすることはできますか?同様に、
/area/
の末尾にスラッシュを付けるにはどうすればよいですか?現時点で末尾にスラッシュがない場合は、システムが第3の変数を探しているのに見つからないので、私は404を取得します。
感謝をユーザー・エラーを奨励していないだろうこれは正しい方向にきれいに指摘しました。私は分かりやすくするために別のルールを分けることになりましたが、これは基本的にあなたのコードの適応です: 'RewriteRule ^(。+)/(。+)$ /index.php?section=$1&area = $ 2&$ 3 [L] RewriteRule ^(。+)/(。+)/($)/ $ /index.php?section=$1&area=$2 [L] 末尾のスラッシュの問題を扱っています。私はPHPを使って定義します。必要に応じてデフォルト領域 – whizzkid