我在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)。
答案 0 :(得分:1)
我相信您已经在问题的永久重定向链接中指出了答案。
这与cakephp无关。这只是mod-rewrite问题。您可以将此代码放在.htaccess文件中(在/ app / webroot下)
rewritecond %{http_host} ^(www.)?site.co.uk [nc]
rewriterule ^(.*)$ http://site.com/$1 [r=301,nc]