非常によく回答された以前の質問がありますが、修正が必要で、回答できなかったため、新しい質問を作成しました。
次のような mod_rewrite が必要でした。
www.example.com?page=var1&cat=var2&subcat=var3&subsubcat=var4
これに:
www.example.com/var1/var2/var3/var4/
ただし、var2、var3、および var4 のオプションの使用もカバーしているため、これらの変数が空の場合でも機能します。
質問には非常によく答えられましたが、var2、var3、および var4 のさまざまなフィールド オプションを使用するには修正が必要です。
私が持っているコードは次のとおりです。
RewriteEngine on
Options +FollowSymlinks -MultiViews
RewriteCond %{QUERY_STRING} !^page= [NC]
RewriteRule ^([^/]+)/?$ /?page=$1 [L]
RewriteCond %{QUERY_STRING} !^page= [NC]
RewriteRule ^([^/]+)/([^/]*)/?$ /?page=$1&cat=$2 [L]
RewriteCond %{QUERY_STRING} !^page= [NC]
RewriteRule ^([^/]+)/([^/]*)/([^/]*)/?$ /?page=$1&cat=$2&subcat=$3 [L]
RewriteCond %{QUERY_STRING} !^page= [NC]
RewriteRule ^([^/]+)/([^/]*)/([^/]*)/([^/]*)/?$ /?page=$1&cat=$2&subcat=$3&subsubcat=$4 [L]
これは機能しますが、どのフィールドがどの変数に使用されているかを選択するために if-or-else を作成し、違いを伝えることができるようにする必要があります。
たとえば、通常、次の 2 つの文字列がある場合、どのフィールドがどの変数に使用されるかを簡単に区別できます。
www.example.com?page=var1&cat=var2&subcat=var3&subsubcat=var4
www.example.com?othervar1=var1&othervar2=var2&othervar3=var3&othervar4=var4
ただし、この文字列の場合、変数がどのフィールド用であるかを区別する機能が必要です。
www.example.com/var1/var2/var3/var4/
どちらが使用されているかを選択するには、mod_rewrite が必要です。
これと同様に、実際に存在するフォルダーに移動すると、正しく機能します。たとえば、実際のフォルダーである「test」というフォルダーに移動すると、次のようになります。
www.example.com/test/
「ページ」フィールドの変数として使用します。最後のスラッシュなしで次を使用すると:
www.example.com/test
以下を URL に出力します。
www.example.com/test/?page=test
通常どおり存在するフォルダーでも機能する必要があります。
誰かがこれを行う方法を教えてください。この問題を解決するための助けをいただければ幸いです。
また、これに遭遇したことがないので、最初に「-MultiViews」ビットが何を意味するのか誰か教えてもらえますか?
ありがとうございました。