我正在开发基于 CodeIgniter 的应用程序。我的 htacess 看起来像这样:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteBase /
RewriteRule ^(.*)$ /index.php?$1 [L]
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
这在大多数情况下都很好用,我可以像这样访问控制器和方法:
http://example.com/controller/method/args
但是,如果它附加了一个 www,像这样
http://www.example.com/foo
它重定向到
http://example.com/index.php?foo
显示的页面始终是我网站的索引页面。
我添加了最后一对 RewriteCond / RewriteRule 只是为了删除(如果www
存在)。
我不太确定如何让它以我想要的方式工作,所以
http://www.example.com/foo
只是重定向到
http://example.com/foo
编辑
从我的 CI 配置文件:
$config['base_url'] = 'http://example.com/';
$config['index_page'] = '';
$config['uri_protocol'] = 'AUTO';