まず、ここに私の .htaccess があります:
RewriteEngine On
Options FollowSymLinks
# check if url ends in a slash and if it does redirect to same url without one
RewriteCond %{REQUEST_URI} !-d
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(([^/]+/)*([^/.]+))/\ HTTP/
RewriteRule ^(([^/]+/)*([^/.]+))/$ http://localhost/example/$1 [R=301,L]
# extionless url rewrite for urls in form example.com/cmd
RewriteRule ^([^/.]+)$ index.php?cmd=$1 [L,QSA]
# extionless url rewrite for urls in form example.com/cmd/action
RewriteRule ^([^/]+)/([^/.]+)$ index.php?cmd=$1&action=$2 [L,QSA]
# extionless url rewrite for urls in form example.com/cmd/ajax
RewriteRule ^([^/]+)/([^/]+)/([^/.]+)$ index.php?cmd=$1&action=$2&ajax=$3 [L,QSA]
したがって、これは URL の書き換えに問題なく機能します。しかし、フォームを PHP に送信した後に Firebug でリクエストを確認すると、ステータスは 303 Move Permanently です。問題は次の行にあると確信しています。
RewriteRule ^(([^/]+/)*([^/.]+))/$ http://localhost/example/$1 [R=301,L]
しかし、私はそれを修正する方法がわかりません。mod_rewrite が機能的に行っていることを正確に実行し続けたいのですが、この問題を修正する必要があります。
助けてくれてありがとう!
編集: また、jquery .ajax を使用して JavaScript から PHP にデータを送信し、投稿するタイプがある場合、それは機能することにも言及したいと思います。また、 $_GET は何があっても機能します。HTML から PHP に送信すると、$_POST だけが機能しません。