我面临一个奇怪的问题,即每当我提交表单时,都会弹出一个错误,例如“ 所有字段都需要 ”。当我调试它时,我发现每当提交表单时,不要在我的控制器中获取任何发布数据,它是一个空数组。
我的本地主机上的一切正常。我已经搜索过它并得出这个结论,这是我的.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]
答案 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]