Php 在基于url codeigniter的项目中重定向到/添加www

Php 在基于url codeigniter的项目中重定向到/添加www,php,apache,codeigniter,Php,Apache,Codeigniter,我试图在基于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 URL,一切都

我试图在基于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 URL,一切都会很有魅力。我尝试了
REQUEST\u URI
,但也没有成功。

这是因为如果响应是重定向,浏览器不会重新提交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\u url']]
选项保留为空字符串(这将使CI执行自动检测),并在您的查看代码中,使用帮助程序或,这样它将使用请求进入的域。

我明白您的意思,但我从未找到此解决方案“仅重写GET请求”在任何地方,奇怪的是,我只有这样的问题,而迫使www的网址。这应该是一个常见的问题,应该有相关的参考。我的猜测是,POST请求主要是由您自己的应用程序生成的(可能您正在运行服务),这应该非常清楚这样一个事实,即它应该创建到
www
域的POST,虽然GET请求可以来自许多来源,如搜索引擎、书签。。。但是,如果由于某种原因无法更改表单,这至少可以使代码正常工作。