1

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

在我的本地主机上一切正常。我已经搜索过它并得出结论,这是我的.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]
4

2 回答 2

0

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

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

于 2013-03-28T08:30:55.550 回答
0

我已经解决了我的问题,通过以下更改规则并开始工作并在 url 中添加斜杠。我希望它会在未来对其他人有所帮助。

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]
于 2013-03-28T08:38:58.673 回答