在Cakephp 2.0中使用.htaccess重定向URL

在Cakephp 2.0中使用.htaccess重定向URL,.htaccess,cakephp,cakephp-2.0,.htaccess,Cakephp,Cakephp 2.0,我使用的是Cakephp 2.0,我的网站域名是www.sample.com,如果我尝试访问sample.com(不带www),那么它将访问www.sample.com,这很好。但我的问题是我的域名由很多页面组成 例如: > http://www.sample.com/users/login > http://www.sample.com/users/add 如果我像这样访问上面的url,那么它将重定向到 > http://www.sample.com/index.php?

我使用的是Cakephp 2.0,我的网站域名是www.sample.com,如果我尝试访问sample.com(不带www),那么它将访问www.sample.com,这很好。但我的问题是我的域名由很多页面组成 例如:

> http://www.sample.com/users/login
> http://www.sample.com/users/add
如果我像这样访问上面的url,那么它将重定向到

>  http://www.sample.com/index.php?url=users/login
但它需要重定向到

   http://www.sample.com/users/login
我已经编写了以下代码.htaccess文件(在app文件夹之前)以重定向

Rewritecond %{http_host} ^sample.com [NC]
Rewriterule ^(.*)$ http://www.sample.com/$1 [R=301,NC]
在webroot文件夹中,我有一个.htacces文件,其中包含以下代码 我想这可能就是问题所在

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

重新启动发动机
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^(.*)$index.php?/$1[QSA,L]

您是一直删除www还是一直保留www?这将增加:

## Add www
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

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

尝试编写下一条规则:

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

在app/webroot/.htaccess文件上,而不是在app的文件夹.htaccess上。这对我来说非常合适。

我需要永远。。如果他们没有把www也需要到www.sample.com