将所有非www重定向到www。对于Cakephp网站

时间:2011-10-18 12:03:10

标签: apache .htaccess cakephp redirect

大家好,我在将非www页面重定向到www时遇到了一些问题。我的cakephp网站的页面。

我试过

Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]

但它似乎不起作用。

我的cakephp应用程序位于子文件夹中。例如。 www.domain.com/my

我已将上述代码添加到根文件夹www.domain.com/

有什么建议吗?感谢?

*更新

这是我的.htaccess文件

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>

RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule ^.*$ http://www.domain.com%{REQUEST_URI} [R=301,L]

我在网址中插入了额外的webroot/index.php?url=。而不是www.domain.com/my/apple,我得到www.domain.com/my/webroot/index.php?url=apple

再次感谢所有人。

4 个答案:

答案 0 :(得分:5)

您的代码不太正确。见下文。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule ^.*$ http://www.domain.com%{REQUEST_URI} [R=301,L] # <-- Mind the 'L'!

RewriteRule ^$ webroot/    [L]
RewriteRule (.*) webroot/$1 [L]

答案 1 :(得分:2)

如果域名是.co.uk

<IfModule mod_rewrite.c> 
   RewriteEngine On
   RewriteCond %{HTTP_HOST} ^domain\.co\.uk$ [NC] 
   RewriteRule ^.*$ http://www.domain.co.uk%{REQUEST_URI} [R=301,L]

   RewriteRule ^$ app/webroot/    [L]
   RewriteRule (.*) app/webroot/$1 [L]
</IfModule>

答案 2 :(得分:1)

    RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\.domain\.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app/webroot/$1 [QSA,L]

答案 3 :(得分:0)

我尝试了下面的以下代码,它对我有用:

n1 <- 2L
data_1[, c(rep(c(TRUE, FALSE), n1))]
#[1]  TRUE FALSE  TRUE FALSE