表格不向控制器发布数据

时间:2013-03-28 08:05:37

标签: php .htaccess mod-rewrite joomla joomla2.5

我面临一个奇怪的问题,即每当我提交表单时,都会弹出一个错误,例如“ 所有字段都需要 ”。当我调试它时,我发现每当提交表单时,不要在我的控制器中获取任何发布数据,它是一个空数组。

我的本​​地主机上的一切正常。我已经搜索过它并得出这个结论,这是我的.htacess文件的问题。我已经设置了将尾部斜杠添加到其中的规则,并发现这会产生问题。

所以我想知道,如何在我的组件中删除此规则以执行特定任务。任何的意见都将会有帮助。这是添加尾部斜杠的代码:

RewriteEngine On

# Start –301 redirect for "http://" to "http://www"
rewritecond %{http_host} ^testdomain.com [nc]
rewriterule ^(.*)$ http://www.testsdomain.com/$1 [r=301,L]
# End - 301 redirect rule

# add trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*[^/]$ /$0/ [L,R=301]

2 个答案:

答案 0 :(得分:0)

检查您的表单发布到哪里。如果表单action是没有斜杠的网址,那么一旦您POST请求它,htaccess会重定向您,并且您将对您应该发布的页面发出GET请求数据。但由于您的请求已重定向并更改为GET,因此不会提交任何数据。

解决方案:修复表单操作,或删除添加尾部斜杠的代码。说到斜线斜线,据我所知,Joomla在没有它的情况下会生成SEF链接,所以我想知道为什么你首先添加它,每次点击某些东西你都会进行重定向

答案 1 :(得分:0)

我已经通过以下方式更改规则解决了我的问题,并开始工作并在网址中添加尾部斜杠。我希望将来能帮助其他人。

RewriteEngine On

# Start –301 redirect for "http://" to "http://www"
rewritecond %{http_host} ^testdomain.com [nc]
rewriterule ^(.*)$ http://www.testsdomain.com/$1 [r=301,L]
# End - 301 redirect rule

# add trailing slash
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !index.php
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.testdomain.com/$1/ [L,R=301]