【问题标题】:redirecting-to/adding www in url codeigniter based project在基于 url codeigniter 的项目中重定向到/添加 www
【发布时间】:2013-06-25 17:39:23
【问题描述】:

我正在尝试在基于 codeigniter 的项目中添加 www 并将所有非 www url 重定向到 www url,但这样做后我的帖子数据不起作用。以下是 Apache .htaccess 文件的内容:

RewriteCond %{HTTP_HOST} ^examplesite\.com$ [NC]
RewriteRule ^(.*)$ http://www.examplesite.com/$1 [R=301,L]

我有$config['uri_protocol'] = 'AUTO';

如果我没有 www 网址,一切都会像魅力一样。我试过REQUEST_URI,但也没有用。

【问题讨论】:

    标签: php apache codeigniter


    【解决方案1】:

    这是因为如果响应是重定向,浏览器不会重新提交 POST 数据。这是正常的,也是意料之中的事情。你可以做的是只重写带有额外条件的 GET 请求:

    RewriteCond %{REQUEST_METHOD} GET [NC]
    RewriteCond %{HTTP_HOST} ^examplesite\.com$ [NC]
    RewriteRule ^(.*)$ http://www.examplesite.com/$1 [R=301,L]
    

    application/config/config.php 中的$config['site_url'] 选项保留为空字符串(这将使CI 进行自动检测),并在您的视图代码中,使用site_url() 帮助程序或form builder functions,这样它将使用请求进来了。

    【讨论】:

    • 我明白你在说什么,但我从来没有在任何地方找到“仅重写 GET 请求”的解决方案,奇怪的是我在强制 www 到 url 时只有这样的问题。这应该是一个常见的问题,应该有对此的参考。
    • 我的猜测是 POST 请求主要是从您自己的应用程序生成的(也许您正在运行一个服务),并且应该非常清楚它应该向@987654327 创建帖子这一事实@ 域,虽然 GET 请求可以来自许多来源,例如搜索引擎、书签……但是,如果您由于某种原因无法更改表单,这至少可以使您的代码正常工作。
    猜你喜欢
    • 2011-09-25
    • 1970-01-01
    • 2022-08-22
    • 2011-12-01
    • 1970-01-01
    • 2014-05-08
    • 2011-06-24
    • 2015-08-03
    • 1970-01-01
    相关资源
    最近更新 更多