私はあなたがこのようなルールを試していると思います
RewriteRule ^(.*).(.*).(.*)$ ./page.php?key=$1&key2=$2&key3=$3
ただし、ピリオドとして解釈したいドットをエスケープすることを忘れないでください。これを修正する方法はたくさんありますが、.htaccess
ファイルを初めて使用する場合は、次の簡単な方法があります。
RewriteEngine On
RewriteBase /
# Skip existing files or directories
RewriteCond %{SCRIPT_FILENAME} -d [OR]
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule ^ - [L]
# Add default PHP extension when appropriate
RewriteCond %{SCRIPT_FILENAME}.php -f
RewriteRule ^.* $0.php [L]
# Pick up 1,2 and 3 parameter versions
RewriteRule ^(.*?)\.^(.*?)\.(.*)$ page.php?key=$1&key2=$2&key3=$3 [QSA,L]
RewriteRule ^(.*?)\.(.*?)$ page.php?key=$11&key2=$2 [QSA,L]
RewriteRule ^(.*?)\.$ page.php?key=$1 [QSA,L]
ノート:
- 最初のルールは常に一致するパターンとして「^」を使用し、「-」はそれを置き換えないことを意味します。
- 2番目は$0を使用します。これは、一致パターン全体を意味します
- ルール3-5は3,2,1パラメータオプションと一致します
- [L](最後の)フラグは、残りのルールをスキップすることを意味します
- 他のパラメータを使用する場合は、QSAフラグが必要になります。
存在チェックインをに分割する理由は、CSSや画像(PNG / GIF / PNG)ファイルなどのファイルとアプリケーション構文を処理する必要があるためです。