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

时间:2013-06-25 17:39:23

标签: php apache codeigniter

我正在尝试添加www并将所有非www网址重定向到基于codeigniter的项目中的www网址,但我的帖子数据在执行此操作后无效。以下是Apache .htaccess文件的内容:

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

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

如果我没有www网址,那么一切都像魅力一样。我尝试了REQUEST_URI,但它也没有用。

1 个答案:

答案 0 :(得分:1)

这是因为如果响应是重定向,浏览器不会重新提交POST数据。这是正常和期望的事情。你能做的只是用额外的条件重写GET请求:

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

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