我使用mod_rewrite以更易读的方式显示页面的地址,而不是
http://127.0.0.1/index.php?article=contact
我得到了
当我发送表单时,全部由index.php处理,所以我将表单的动作直接指向当前显示的页面,但$ _POST始终为空,打开表单块看起来像这样
<form method="post" action="http://127.0.0.1/contact">
在我推出mod_rewrite之前一切都很好,但是现在mod_rewrite似乎会引起问题。
请告诉我在PHP,Apache配置文件中应该做些什么改变,或者让其他方法做什么让$ _POST与重写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]
提前致谢
阿米尔
答案 0 :(得分:2)
此重写规则执行重定向,因此浏览器将使用GET请求转到此地址;因此,POST数据将始终为空。
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]