codeigniter将www添加到htaccess中的url正在停止POST请求工作

时间:2013-06-20 07:14:42

标签: php apache codeigniter .htaccess post

我在向www的网址添加.htaccess时遇到了一个相当奇怪的问题。我有一个基于codeigniter的网站,并将www添加到所有网址。但我的Post请求已停止工作。 这是我的apache .htaccess文件的内容

RewriteEngine on
#for adding www
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

RewriteCond $1 !^(index\.php|img|public) [NC]
RewriteRule ^(.*)$ /index.php?/$1 [L]

我正在使用$config['uri_protocol'] = 'AUTO';

并且它可以与非www网址一起使用,但如上所述,它会在POST添加www后停止REQUEST_URI次请求。我甚至试过$config['base_url'] = 'http://example.com'; ,但没有帮助。 我有一些其他的设置。

$autoload['helper'] = array('url');

并在自动加载www

我想问题是添加POST后302重定向无法理解{{1}}数据。

2 个答案:

答案 0 :(得分:1)

更改您的基本网址:

http://example.com

为:

http://www.example.com

答案 1 :(得分:0)

而不是在.htaccess中进行301重定向,只需将该逻辑烘焙到您的应用中即可。

例如,您可以执行的每个请求:

if (strstr($_SERVER['HTTP_HOST'], 'www') === FALSE) {

    $domain_with_www = 'http://www.example.com';
    header ('HTTP/1.1 301 Moved Permanently');
    header ("location: ".$domain_with_www.$this->uri->uri_string);
}

通过扩展CI_Controller,您可以在每个请求上运行此命令。有关详细信息,请参阅此处:http://codeigniter.tv/a-10/Extending-the-core-MY_Controller-and-beyond