Php 表单在CodeIgniter中被破坏
我正在尝试重写我的URL,从/controller/method到index.php?/controller/method,这基本上是可行的,只是表单不能正确提交。我设置了一些路由,但是表单也在非重新路由的URL上中断。这里有一个小背景 我已经将index.php移出到一个单独的web文件夹中,该文件夹是web根目录,因此不可能公开应用程序文件。我不确定这是否会导致这个问题,但我的安装有点不寻常。我的目录结构如下所示:Php 表单在CodeIgniter中被破坏,php,forms,codeigniter,url-routing,Php,Forms,Codeigniter,Url Routing,我正在尝试重写我的URL,从/controller/method到index.php?/controller/method,这基本上是可行的,只是表单不能正确提交。我设置了一些路由,但是表单也在非重新路由的URL上中断。这里有一个小背景 我已经将index.php移出到一个单独的web文件夹中,该文件夹是web根目录,因此不可能公开应用程序文件。我不确定这是否会导致这个问题,但我的安装有点不寻常。我的目录结构如下所示: + codeigniter/ + application/ -
+ codeigniter/
+ application/
- models, views, etc
+ system/
+ web/
- .htaccess
- index.php
- css, javascript, images, etc
我的.htaccess非常简单:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
重新启动发动机
重写基/
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)$index.php?/$1[L]
它在XAMPP for Windows上似乎工作得很好,但在基本的Ubuntu灯堆栈上就坏了。当我提交表格时,什么也没发生。表单定向加载的页面,但好像表单尚未提交
抱歉,还有一条重要信息:如果我把index.php放在那里,那么URL看起来像/index.php/contacts/edit/1
,它就可以工作了
如果我能提供更多信息,请告诉我。谢谢 结果是.htaccess中我没有包含的一部分导致错误很难找到
<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>
启用mod_rewrite解决了这个问题。再描述一下“什么也没发生”。空白页?屏幕上的错误?“同一页重新加载到位?”迈克尔编辑。发生的事情不多,否则我可以更有效地调试它。我希望其他人也看到过类似的事情。当然,错误报告处于打开状态。不确定发送过程中发生了什么,但如果您在表单提交到的方法中执行打印($\u POST),会发生什么情况?请显示表单代码好吗?只有
action=“…”
@theazureshadow,事实上发生了很多事情——很多都是为了发现问题。检查浏览器调试器(如Firebug)中的HTTP重定向或状态消息,并检查服务器php日志中的php错误。
[error] File does not exist: /path/to/web/contacts/edit/1