これが私が達成しようとしていることです:
クリーンな URL から取得して URL パラメータに変換する必要がある 3 つのポイントがあります。典型的なクリーン URL は次のようになります。
http://mysite.com/page/someAlphaNumeric-OR-emailAddress/file.html
また:
http://mysite.com/page/file.html
また:
http://mysite.com/page/someAlphaNumeric-OR-emailAddress
最初の変数は常に英数字で、2 番目の変数はオプションで、英数字または電子メール アドレスを含むことができます。3 番目の変数 (電子メール/英数字が指定されている場合はオプション) は常にファイル名です。
2 番目の変数についてさまざまなことを試しましたが、問題は、ファイルと電子メール アドレスが競合しているように見えることです。これまでのところ、ソリューションに最も近いと思われるコード:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9-z\-]+)$ index.php?page=$1&id=$2 [L,QSA]
RewriteRule ^([a-zA-Z0-9]+)$ index.php?page=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9-z\-]+)/.*$ index.php?page=$1&id=$2&file=$0 [L,QSA]
RewriteRule ^([a-zA-Z0-9]+)/.*$ index.php?page=$1&file=$0 [L,QSA]
ページと、電子メール アドレスとファイル名の両方を提供すると、ファイル名だけにパラメーターが割り当てられます。URL にファイルが含まれていない場合、電子メール アドレスがファイル パラメータに取り込まれます。
もちろん、ページ、英数字、およびファイルを提供すれば、すべてが完全に機能します。条件はおそらくすべてのルールの上に設定される可能性がありますが、私にはわかりません.