具有多个域的cakephp .htaccess

时间:2010-09-29 20:26:15

标签: .htaccess cakephp mod-rewrite cross-domain

我在cookbook设置了我的cakephp .htaccess文件,一切正常。

我的网站目前有多个域名,所有域名都指向同一个网站(例如www.site.com,www.site.co.uk)。我想设置一条规则,以便www.site.co.uk/page的请求permanently redirected到www.site.com/page等。

我无法让两条规则一起工作。任何人都可以帮助我吗?


已编辑包含更多详细信息:

以下是我的网站根目录中的.htaccess文件:

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine on

    # Force domain to be www.site.com
    RewriteCond %{HTTP_HOST} !^www\.site\.com$
    RewriteRule ^(.*)$ http://www.site.com/$1 [R=permanent,NC]

    # For CakePHP   
    RewriteCond %{HTTP_HOST} ^www\.site\.com$   
    RewriteRule    ^(.*)$ app/webroot/$1    [NC]
</IfModule>

我在子目录中也有一个单独的CakePHP应用程序:tbgroup。这是.htaccess文件(tbgroup / .htaccess):

<IfModule mod_rewrite.c>
   RewriteEngine on

   # For CakePHP
   RewriteRule    ^(.*)$ app/webroot/$1    [NC]
</IfModule>

一切正常:www.site.co.uk被重定向到www.site.com,www.site.co.uk / page被重定向到www.site.com/page。 CakePHP工作正常。唯一的问题是www.site.co.uk/tbgroup没有重定向到www.site.com/tbgroup - 它仍然是www.site.co.uk/tbgroup(和CakePHP工作正常)。

如果您愿意,可以在实际网站上试用(www.site.com或www.site.co.uk)。

1 个答案:

答案 0 :(得分:1)

我相信您已经在问题的永久重定向链接中指出了答案。

这与cakephp无关。这只是mod-rewrite问题。您可以将此代码放在.htaccess文件中(在/ app / webroot下)

rewritecond %{http_host} ^(www.)?site.co.uk [nc]
rewriterule ^(.*)$ http://site.com/$1 [r=301,nc]