.htaccess如果请求url与host不同,则重定向到CodeIgniter控制器

时间:2014-06-04 16:32:38

标签: apache .htaccess mod-rewrite redirect

当某人访问我的网站"example.com"时 - (此网站运行CodeIgniter),我希望能够通过.htaccess检测该请求是否为"example.com",如果有人通过{访问我的网站{1}}(这应该可以正常工作,因为如果指向CNAME,我的虚拟主机接受传入的请求),然后它们将被重定向到控制器。

这是我尝试的尝试:

"user1.com"

如果可能,我是否可以保留外部请求域URL,因此如果请求来自RewriteCond %{HTTP_HOST} !^example\.com$ [NC] RewriteCond %{REQUEST_URI} !^/site/%1$1 RewriteRule ^(.*)$ http://example.com/site/%1$1 [L,NC,P] ,那就没问题 - 基本上没有屏蔽。

网站是我的控制器的名称,它采用参数名称。

问题

我认为使用这种方式时,虚拟主机地址无法正常工作,它不显示子页面...

1 个答案:

答案 0 :(得分:1)

您可以使用此规则:

RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
RewriteRule ^((?!site/).*)$ http://example.com/site/$1?host=%{HTTP_HOST} [L,NC,P]

删除www:

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