【问题标题】:Unwanted redirect with form submit表单提交不需要的重定向
【发布时间】:2013-08-10 12:16:43
【问题描述】:

我刚刚将我的 codeigniter 项目从我的 wamp 服务器转移到我几乎免费的语音服务器上,并且遇到了一些奇怪的问题。我正在使用我在网上找到的 mod_rewrite 从 url 中删除臭名昭著的“index.php”,我认为当我提交表单时它会导致重定向,丢失帖子数据。

这是我的 htaccess 文件:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

在表单调用的脚本中,我正在检查是否有发布数据。如果没有发布数据,我会重定向到 404 错误(这是为了防止人们通过 url 调用脚本)。因此,在上传网站后,每次提交表单时我都会收到 404 错误,这表明没有发送数据。但是,出于调试目的,我从脚本中删除了所有代码,发现现在提交表单会加载一个空白页面。由于表单不应该实际加载新页面,这表明脚本正在重定向到自身,从而丢失帖子数据,然后最终满足我的帖子数据测试并重定向到 404。

关于为什么会发生这种重定向的任何想法?这真的很重要,如果有任何建议,我将不胜感激!

谢谢

【问题讨论】:

  • 由于您的.htaccess 文件,它不会发生。您的规则中没有重定向标志。尝试将 HTTP 请求发送到包含/index.php/ 的 URL。如果你遇到同样的问题,它与.htaccess文件无关。
  • 我重写了表单的操作以包含 index.php,这解决了问题。我暂时可以使用这种解决方法(因为我非常需要时间),但我真的很想知道未来项目的情况。有什么想法吗?

标签: php .htaccess codeigniter


【解决方案1】:

看起来服务器没有启用 mod_rewrite。

尝试删除 IfModule mod_rewrite.c 和 IfModule 标签,看看是否 你得到一个内部服务器错误..

Hashem Qolami 是对的,没有重定向标志,因此您的 codeigniter 路由器正在重定向...

【讨论】:

  • 我已经阅读了我能找到的关于服务器的所有文档,他们声称 mod_rewrite 已启用。我只是尝试了您的要求,但结果相同。
  • mod_rewrite 肯定在 NearlyFreeSpeech 服务器上。这不是问题。
猜你喜欢
  • 2012-12-19
  • 1970-01-01
  • 2014-01-15
  • 1970-01-01
  • 1970-01-01
  • 2020-02-06
  • 1970-01-01
  • 2020-07-14
相关资源
最近更新 更多