2017-03-16 86 views
0

我有一个在CodeIgniter HMVC开发的网站。我使用的协议是https协议。CodeIgniter .htaccess问题www和非www网址

我希望只使用非www网址,https://seocompany.us.com

如果有人尝试使用https://www.seocompany.us.com,它应该重定向到https://seocompany.us.com

这里是我的.htaccess代码,如果我使用的是正常工作,https://seocompany.us.com/services但增加index.php如果我键入https://www.seocompany.us.com/services并重定向到https://seocompany.us.com/index.php?/services

RewriteBase/
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?/$1 [L] 

    RewriteCond %{SERVER_PORT} 80 
    RewriteRule ^(.*)$ https://seocompany.us.com/$1 [R,L] 

回答

1

@Tpojka谢谢你的帮助。最后我解决了这个问题。我在这里分享我的解决方案。

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ https://%1/$1 [R=301,L] 
RewriteCond %{HTTPS} !on 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 
1

你只检查是否要求我是否通过安全方案端口制作。您不检查子域名前缀。试试这种方式:

RewriteBase/

# force https 
RewriteCond %{HTTPS} !on 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

# force non-www 
RewriteCond %{HTTP_HOST} ^www\.seocompany\.us\.com [NC] 
RewriteRule ^(.*)$ http://seocompany.us.com/$1 [R=301] 


RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?/$1 [L] 

也清除浏览器缓存或尝试从其他浏览器/私人窗口。

+0

这不是工作,我输入这个网址:http://seocompany.us.com/seo-web-design,它不重定向到https://seocompany.us.com/seo -网页设计。 –

+0

我做了一些改动,现在就试试。 – Tpojka

+0

同样的问题。不用找了。我尝试在Chrome浏览器和Firefox隐私模式。 –