2011-10-18 78 views
0
ALLM

嗨,我有在重定向非WWW网页的WWW的一些问题。我的cakephp网站的页面。将所有非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

感谢所有。

回答

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] 
+0

谢谢!但仍然存在问题。该网址正在重定向,但我在网址中插入了额外的“webroot/index.php?url =”。相反www.domain.com/my/apple的,我让我www.domain.com/my/webroot/index.php?url=apple – mobz

+0

我意识到还有的“重写规则^默认的行(。*)$指数.php?url = $ 1 [QSA,L]“在文件的.htacess中。由于页面会显示错误,因此我无法删除该行。 – mobz

+0

只是把默认的规则蛋糕然后在(我更新我的回答显示结果) – wrdevos

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> 
0

RewriteEngine叙述在

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]