我使用mod_rewrite以更可读的方式显示页面的地址,而不是
http://127.0.0.1/index.php?article=contact
我有
http://127.0.0.1/contact
当我发送表单时,所有都是由index.php处理的,所以我直接将表单的行为显示到当前显示的页面,但$ _POST总是空的,表单的开始块看起来像这样
<form method="post" action="http://127.0.0.1/contact">
在我启动mod_rewrite之前,所有工作都很好,但是现在mod_rewrite似乎会导致问题。
请告诉我在PHP,Apacheconfiguration文件中改变什么,或者让$ _POST与rewrite endabled一起工作
这是要求的重写规则
RewriteEngine on #RewriteCond %{HTTP_HOST} !^www\. #RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] RewriteRule \.(css|jpe?g|gif|png)$ - [L] RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$ RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L] RewriteRule ^([^/\.]+)/?$ index.php?page=$1 [L] RewriteRule ^([^/\.]+)/([^/\.]+)/?$ index.php?page=$1&va=$2 [L] RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ index.php?page=$1&va=$2&vb=$3 [L]
提前致谢
阿米尔
这个重写规则做了一个重定向 ,所以浏览器会用GET请求去这个地址。 POST数据将因此始终为空。
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]