Apache の構成で遊んでからしばらく経ちましたが、次のようなものが必要です。
RewriteEngine on
RewriteRule ^/([^/])/? ?p=$1
最初の部分は正規表現で、2 番目の部分は perl のs/foo/bar/
構文に見られるのとよく似た置換です (ただし、正規表現の実装は常にわずかに異なるため、もちろん perl とはいくつかの違いがあります)。
これは一致しないhttp://domain.tld
か、満たされていないためオプションではありませんhttp://domain.tld/
。正規表現の最後にあるのは、均等に処理([^/])
することです(それを行いたい場合)/?
http://domain.tld/pagename
http://domain.tld/pagename/
上記のコードは、クエリ文字列で渡される他のパラメーターがある場合、必ずしも機能しないことに注意してください。しかし、あなたはそれを求めていませんでした...
ページに追加のクエリ文字列パラメーターが含まれるようになったり、必要になったりすると、URL の書き換えが非常に複雑になる可能性があることに注意してください/area/pagename
。この追加された複雑さにより、最終的にこのページを読むのに多くの時間を費やすことになります。
http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html
おそらくそれは価値があります...その質問に対する答えを知っているのはあなただけです:)